Hey, thanks for the code.
What I meant is get the types into the incoming messages, so I'm thinking of
any setting at the server side. You don't have to specify types in the
outgoing soap, because I think axis2 will figure them out from wsdl file.
I used to have a "namespace" problem too. The error I got was something like
"need namespace blah blah, found none". If you have a similar problem, I
might be able to help.
On 4/11/08, Higdon, Aaron C Mr CTR USA TRADOC USAAC <
[EMAIL PROTECTED]> wrote:
>
> UNCLASSIFIED////
>
>
> I managed to get the types into the message using the ServiceClient, but
> I cannot get the declared namespaces to show up. Here is my code if it
> helps you out:
> public Object invoke(String methodName, Object[] args) throws Exception
> {
> String response = null;
> try {
> SOAPFactory omFactory =
> OMAbstractFactory.getSOAP11Factory();
> SOAPEnvelope envelope = omFactory.getDefaultEnvelope();
>
> envelope.declareNamespace("http://schemas.xmlsoap.org/soap/envelope/",
> "SOAP-ENV");
>
> envelope.declareNamespace("http://schemas.xmlsoap.org/soap/encoding/",
> "SOAP-ENC");
>
> envelope.declareNamespace("http://www.w3.org/2001/XMLSchema", "xsd");
> OMNamespace nsXsi =
> envelope.declareNamespace("http://www.w3.org/2001/XMLSchema-instance",
> "xsi");
> OMNamespace nsService =
> envelope.declareNamespace("urn:ermservice", "ns1");
>
> OMFactory fac = OMAbstractFactory.getOMFactory();
>
> OMElement method = fac.createOMElement(methodName,
> nsService);
> envelope.getBody().addChild(method);
>
> OMElement value = fac.createOMElement("user-String",
> null);
> value.addChild(fac.createOMText(this.userName));
> value.addAttribute("type", "xsd:string", nsXsi);
>
> method.addChild(value);
>
> MessageContext msgContext = new MessageContext();
> msgContext.setEnvelope(envelope);
>
> Options options = new Options();
> options.setTo(new EndpointReference(
> this.url.toExternalForm() ));
>
> options.setTransportInProtocol(org.apache.axis2.Constants.TRANSPORT_HTTP
> );
> options.setProperty(HTTPConstants.CHUNKED, false);
>
> System.out.println(envelope.toString());//correctly
> shows all declared namespaces
> ServiceClient sender = new ServiceClient();
> sender.setOptions(options);
>
> OMElement result = sender.sendReceive(method);
> response = result.getFirstElement().getText();
> } catch (Exception e) {
> e.printStackTrace();
> }
> return response;
>
> }
>
> -----Original Message-----
> From: Tony Liu [mailto:[EMAIL PROTECTED]
> Sent: Thursday, April 10, 2008 12:09 AM
> To: [email protected]
> Subject: How to retain type info in soap?
>
> Hey,
> Can anyone tell me how to retain type infomation of any value in an
> incoming soap message in Axis2?
> for example, instead of <name>abc</name>, we have <name
> type="string">abc</name>.
>
> cheers,
>
> Tony
>
>
>
> UNCLASSIFIED////
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>