You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "David Illsley (JIRA)" <ji...@apache.org> on 2008/12/17 22:22:44 UTC

[jira] Closed: (AXIS2-2110) How to get WS-A info from transport layer

     [ https://issues.apache.org/jira/browse/AXIS2-2110?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

David Illsley closed AXIS2-2110.
--------------------------------

    Resolution: Invalid

The wsa:From value is available in the service. Try messageContext.getFrom()

> How to get WS-A info from transport layer
> -----------------------------------------
>
>                 Key: AXIS2-2110
>                 URL: https://issues.apache.org/jira/browse/AXIS2-2110
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: Addressing
>    Affects Versions: 1.1.1
>         Environment: Linux Fedora5, tomcat 6.0.7 java1.5.0_0.9, Axis2 1.1.1
>            Reporter: John Mayer
>            Assignee: David Illsley
>
> I't trying to get the epr of the client invoking a web service.
> Where does axis store this information? 
> My classes do something like this:
> //client class
> public static void main(String[] args){
> 		try{
> 			EndpointReference targetEPR = new EndpointReference("http://localhost:8080/axis2/services/RPCCalcService/");
> 			EndpointReference myEPR = new EndpointReference("http://localhost:8080/axis2/services/clientService/");
> 			Options options = new Options();
> 			options.setTo(targetEPR);
> 			options.setReplyTo(myEPR);
> 			options.setFrom(myEPR);
> 			options.setAction("getClientName");
> 			 
> 			RPCServiceClient sender = new RPCServiceClient();
> 			sender.setOptions(options);
> 			QName op = new QName("http://calc/xsd", "getClientName");
> 			Object[] params = new Object[] { };
> 			Class[] returnTypes = new Class[] { String.class };
> 			Object[] response = sender.invokeBlocking(op, params, returnTypes);
> 			String result = (String) response[0];
> 			System.out.println(result);
> }
> //method in service class
> public String getClientName() {
>     	MessageContext msgCtx = MessageContext.getCurrentMessageContext();  	   	   	
>     	String remoteAddress = (String)msgCtx.getProperty(MessageContext.REMOTE_ADDR);
>     	
>     	//TRANSPORT_URL 
>     	TransportHeaders transport = (TransportHeaders)msgCtx.getProperty(MessageContext.TRANSPORT_HEADERS);
>     	String trh = "";
>     	trh = "Message Context Transport Header Propertie Keys: " +
>     			transport.keySet() +"\nvalues: "+transport.values();
>     	
>     	String to = msgCtx.getTo().toString();
>     	String from = msgCtx.getFrom().toString();
>     	String env = msgCtx.getEnvelope().toString();
>     	return "To: "+ to + " From:  "+ from +" evn: "+ env+ " thr: "+trh;
> }
>     	
> I get: 
> To: Address: http://localhost:8080/axis2/services/RPCCalcService/ 
> From:  Address: 127.0.0.1 
> evn: <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header /><soapenv:Body><getClientName xmlns="http://calc/xsd" /></soapenv:Body></soapenv:Envelope> 
> thr: Message Context Transport Header Propertie Keys: [host=localhost:8080, user-agent=Axis2, transfer-encoding=chunked, content-type=text/xml; charset=UTF-8, soapaction="getClientName"]
> values: [localhost:8080, Axis2, chunked, text/xml; charset=UTF-8, "getClientName"]
> Why wsa info are not present in the soap envelope?
> How can I get the client erp
> EndpointReference myEPR = new EndpointReference("http://localhost:8080/axis2/services/clientService/");
> in the server side?
> Many Thank

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.