Hi All!
I have a problem when invoking simple Axis2 web service.
My service looks somthing like this:
package org.xh.nuntius.sandbox.tomcat.ws.axiom;
public class LoggerService {
public OMElement log(OMElement log) {
System.out.println("LoggerService.log()");
boolean success = true;
OMFactory omFactory = OMAbstractFactory.getOMFactory();
OMElement result = omFactory.createOMElement(new
QName("result"));
result.setText(Boolean.toString(success));
return result;
}
}
its name space is http://axiom.ws.tomcat.sandbox.nuntius.xh.org.
I can deploy it, I can invoke it with generated by Eclipse WS Client app, etc.
I have added this web service to my BPEL:
<bpws:invoke inputVariable="LoggerServiceRequest" name="Log"
operation="log" outputVariable="LoggerServiceResponse"
partnerLink="LoggerService"
portType="ns1:LoggerServicePortType" />
my process is successfully deployed, but when invoking it I get:
LoggerService.log()
DEBUG - GeronimoLog.debug(66) | Found a header in incoming message, checking if
there are endpoints there.
DEBUG - GeronimoLog.debug(66) | Got service response: <?xml version='1.0' encodi
ng='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/env
elope/" xmlns:wsa="http://www.w3.org/2005/08/addressing"><soapenv:Header><wsa:Ac
tion>urn:logResponse</wsa:Action><wsa:RelatesTo>uuid:hqejbhcnphr2xx6ccsfh3h</wsa
:RelatesTo></soapenv:Header><soapenv:Body><return>true</return></soapenv:Body></
soapenv:Envelope>
WARN - GeronimoLog.warn(96) | Message format error, failing.
org.apache.ode.axis2.OdeFault: Unexpected element in SOAP body: message result e
lement {http://axiom.ws.tomcat.sandbox.nuntius.xh.org}logResponse.
at org.apache.ode.axis2.util.SoapMessageConverter.extractSoapBodyParts(S
oapMessageConverter.java:408)
at org.apache.ode.axis2.util.SoapMessageConverter.parseSoapResponse(Soap
MessageConverter.java:334)
at org.apache.ode.axis2.ExternalService.reply(ExternalService.java:313)
at org.apache.ode.axis2.ExternalService.access$100(ExternalService.java:
60)
at org.apache.ode.axis2.ExternalService$1$1.call(ExternalService.java:15
7)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:907)
at java.lang.Thread.run(Thread.java:619)
it says that the <return>true</return> element is unexpected in SOAP Body...
the WSDL of my web service is generated automatically by Axis2
(http://localhost:8080/axis2/services/LoggerService?wsdl) and the
response element looks like this:
<xs:element name="logResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="xs:anyType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
can somebody show how to invoke Axis2 AXIOM Web Service in Ode?
I would be grateful for any hints!
best regards
Łukasz