I have setup BPS and have created a few BPEL processes which i can use to invoke services on the Application Server. I have created a REST service on the ESB and a REST service I wrote by Java Spring Boot and I have the problem. My setup in BPS only can run with REST service on the ESB, cannot run with REST service by Java. When I use the REST by Java, I saw the log:
"ERROR {org.wso2.carbon.bpel.core.ode.integration.PartnerService} - Error sending message to Axis2 for ODE mex {PartnerRoleMex#hqejbhcnphrfigtpcgkgif [PID {http://wso2.org/bps/sample}CallRestJava-383] calling org.apache.ode.bpel.epr.WSAEndpoint@3807729c.getParam(...) Status REQUEST} java.lang.NullPointerException at org.apache.axis2.json.gson.factory.XmlNodeGenerator.processSchemaList(XmlNodeGenerator.java:60) at org.apache.axis2.json.gson.factory.XmlNodeGenerator.getMainXmlNode(XmlNodeGenerator.java:258) at org.apache.axis2.json.gson.GsonXMLStreamReader.process(GsonXMLStreamReader.java:162) at org.apache.axis2.json.gson.GsonXMLStreamReader.initXmlStreamReader(GsonXMLStreamReader.java:108) at org.apache.axis2.json.gson.JSONMessageHandler.invoke(JSONMessageHandler.java:81) at org.apache.axis2.engine.Phase.invokeHandler(Phase.java:340) at org.apache.axis2.engine.Phase.invoke(Phase.java:313) at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:261) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:167) at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:359) at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:445) at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:225) at org.apache.axis2.client.OperationClient.execute(OperationClient.java:149) at org.wso2.carbon.bpel.core.ode.integration.HTTPBindingHandler.invoke(HTTPBindingHandler.java:118) at org.wso2.carbon.bpel.core.ode.integration.PartnerService.invoke(PartnerService.java:264) at org.wso2.carbon.bpel.core.ode.integration.BPELMessageExchangeContextImpl.invokePartner(BPELMessageExchangeContextImpl.java:43) at org.apache.ode.bpel.engine.BpelRuntimeContextImpl.invoke(BpelRuntimeContextImpl.java:897) at org.apache.ode.bpel.runtime.INVOKE.run(INVOKE.java:140) at sun.reflect.GeneratedMethodAccessor93.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451) at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139) at org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:1002) at org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeNewInstance(PartnerLinkMyRoleImpl.java:208) at org.apache.ode.bpel.engine.BpelProcess$1.invoke(BpelProcess.java:283) at org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:224) at org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:279) at org.apache.ode.bpel.engine.BpelProcess.handleJobDetails(BpelProcess.java:434) at org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:558) at org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:467) at org.apache.ode.scheduler.simple.SimpleScheduler$RunJob$1.call(SimpleScheduler.java:633) at org.apache.ode.scheduler.simple.SimpleScheduler$RunJob$1.call(SimpleScheduler.java:627) at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:298) at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:253) at org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleScheduler.java:627) at org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleScheduler.java:611) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)"
Both of REST service is only get information of user from database
"http://localhost:8082/user/id/{id}"
"http://localhost:8281/services/user_service/insert/{id}"
And this is my BPS setup to call the REST service
"<wsdl:definitions name="UserService" targetNamespace="http://www.example.org/UserService/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://www.example.org/UserService/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"> wsdl:types<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/UserService/"> <xsd:element name="userID"> xsd:complexType xsd:sequence <xsd:element name="id" type="xsd:int"></xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="user"> xsd:complexType xsd:sequence <xsd:element name="id" type="xsd:int"></xsd:element> <xsd:element name="name" type="xsd:string"></xsd:element> <xsd:element name="email" type="xsd:string"></xsd:element> <xsd:element name="address" type="xsd:string"></xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema></wsdl:types> <wsdl:message name="getParamRequest"> <wsdl:part name="userID" element="tns:userID"></wsdl:part> </wsdl:message> <wsdl:message name="getParamResponse"> <wsdl:part name="result" element="tns:user"></wsdl:part> </wsdl:message> <wsdl:portType name="UserGetPortType"> <wsdl:operation name="getParam"> <wsdl:input message="tns:getParamRequest"></wsdl:input> <wsdl:output message="tns:getParamResponse"></wsdl:output> </wsdl:operation> </wsdl:portType> <wsdl:binding name="UserGetBinding" type="tns:UserGetPortType"> <http:binding verb="GET" /> <wsdl:operation name="getParam"> <http:operation location="http://localhost:8082/user/id/{id}" /> wsdl:input http:urlReplacement/ </wsdl:input> wsdl:output <mime:content part="result" type="text/xml"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="UserGetService"> <wsdl:port name="UserGetPort" binding="tns:UserGetBinding"> <http:address location="http://localhost:8082/user/id/1"/> </wsdl:port> </wsdl:service></wsdl:definitions>"
So every ideas are very good for me now. Thanks!!!