-
1. Re: Request didn't include a SOAP Message
bertrand.njiipwo Dec 14, 2006 11:37 AM (in response to bertrand.njiipwo)I'm using jbpm-3.1.1 jbpm.bpel.1.beta1, jboss AS 4.0.4.GA, and java 1.5
-
2. Re: Request didn't include a SOAP Message
aguizar Dec 14, 2006 8:36 PM (in response to bertrand.njiipwo)Hi Bertrand,
If I understand correctly, jBPM is sending an HTTP request to a partner service, but the SOAP envelope being transmitted is not what the service expects. In this case, I'd like to take a look at the outgoing SOAP message and the partner WSDL document for determining the possible cause of the problem.
Effectively, the WSDL location and the endpoint address are different. The SOAP message should be sent to the endpoint address. jBPM requires the WSDL document to determine the expected message format. -
3. Re: Request didn't include a SOAP Message
bertrand.njiipwo Dec 15, 2006 7:46 AM (in response to bertrand.njiipwo)Hello Alex,
first thanks for your reply and i'll like to give some background informations hier to let you understand what i'm trying to do.
I wan jbpm invoke an already running service under: http://localhost:8080/axis/services/schufaServiceB?wsdl. But this service is not to access directly because its one service under the cathegory schufa and the cathegory has the URL http://localhost:8081/creditprocess/schufa. Hier i have an inderection over an monitoring component which receive the HTTP-Request (with the SOAPMessage) and invoke the "best" service at the request time. This means the name of the specific service is unknow but the general name of the service cathegory is know as the category name. At the oder side all services under that cathegory have the same interface-description (porttype, operation, parameter and parameter oder)
The cathegory is like an UDDI-registry. I have the specification of the services belowing to that cathegory unter the URL: http://localhost:8080/portal/demo/schufa.wsdl.
In the application descriptor bpel-application.xml i need to specify the contextURL and the wsdl location to point at the interface description of the partner service to let the jbpm module retrieves the interface informations before creating and sending the message to the service: (like defined in partner/schufa/web.xml and partner/schufa/webservices.xml).
So hier is my problem; The deployed service partner have his endpoint under: http://localhost:8080/schufa/schufaWS. I don't really need this URL as service endpoint. The client requests (bpel-process, service client) have to be redirected to a running service via the monitoring component at the adress: http://localhost.8081/creditprocess/schufa. This will be my service endpoint. The monitoring component will pick up one running service at: http://localhost:8080/axis/services/schufaWSB and send the receive Request (SOAP Request) to that service.
I'll like to achieve that the SOAPMessage send by the process before the Schufa WS is called is included in this HTTP-Request before it is send. I'll need to specify this address: http://localhost.8081/creditprocess/schufa as soap addresse in jbpm-bpel so that the running process sends the soap request to this address. How can i achieve this goal using jbpm?
My files:
loanapproval.wsdl<?xml version="1.0" encoding="UTF-8"?> <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:samples:loanapproval" xmlns:loanapproval="urn:samples:loanapproval" xmlns:schufa="urn:samples:schufa" xmlns:types="urn:samples:loanapprovalTypes" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:bpel="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/" targetNamespace="urn:samples:loanapproval"> <import namespace="urn:samples:schufa" location="interface/schufa.wsdl"/> <types/ <schema targetNamespace="urn:samples:loanapprovalTypes" xmlns="http://www.w3.org/2001/XMLSchema"> <element name="loanProcessFault" type="types:loanProcessFaultType"/> <complexType name="loanApplicationType"> <sequence> <element name="firstName" type="string"/> <element name="lastName" type="string"/> <element name="amount" type="float"/> </sequence> </complexType> <complexType name="approvalDecisionType"> <sequence> <!--element name="approved" type="boolean"/--> <element name="approved" type="string"/> </sequence> </complexType> <complexType name="loanProcessFaultType"> <sequence> <element name="ErrorCode" type="int"/> <element name="ErrorMessage" type="string"/> </sequence> </complexType> </schema> </types> <message name="applyRequest"> <part name="loanRequestParameters" type="types:loanApplicationType"/> </message> <message name="applyResponse"> <part name="loanResponse" type="types:approvalDecisionType"/> </message> <message name="applyLoanProcessFault"> <part name="loanFault" element="types:loanProcessFault"/> </message> <portType name="LoanProcessPortType"> <operation name="apply"> <input message="tns:applyRequest"/> <output message="tns:applyResponse"/> <fault name="LoanProcessFault" message="tns:applyLoanProcessFault"/> </operation> </portType> <plt:partnerLinkType name="LoanProcessingPLT"> <plt:role name="lender"> <plt:portType name="tns:LoanProcessPortType"/> </plt:role> </plt:partnerLinkType> <plt:partnerLinkType name="SchufaPLT"> <plt:role name="schufa"> <plt:portType name="schufa:SchufaWS"/> </plt:role> </plt:partnerLinkType> </definitions>
loanapproval.bpel<?xml version="1.0" encoding="UTF-8"?> <process name="loanapproval" suppressJoinFailure="yes" targetNamespace="urn:samples:loanapproval" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:tns="urn:samples:loanapproval" xmlns:loanapproval="urn:samples:loanapproval" xmlns:schufa="urn:samples:schufa" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:bpel="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.xmlsoap.org/ws/2003/03/business-process/ http://schemas.xmlsoap.org/ws/2003/03/business-process/"> <partnerLinks> <partnerLink name="LoanProcessing" partnerLinkType="loanapproval:LoanProcessingPLT" myRole="lender"/> <partnerLink name="SchufaLink" partnerLinkType="tns:SchufaPLT" partnerRole="schufa"/> </partnerLinks> <variables> <variable name="applyProcessRequest" messageType="loanapproval:applyRequest"/> <variable name="applyProcessResponse" messageType="loanapproval:applyResponse"/> <variable name="schufaRequest" messageType="schufa:validCustomerRequest"/> <variable name="schufaResponse" messageType="schufa:validCustomerResponse"/> </variables> <sequence> <receive createInstance="yes" name="LoanApplication" operation="apply" partnerLink="LoanProcessing" portType="loanapproval:LoanProcessPortType" variable="applyProcessRequest"/> <assign name="AssignLoanInfo_forApproval"> <copy> <from variable="applyProcessRequest" query="/loanRequestParameters/lastName" part="loanRequestParameters"/> <to variable="schufaRequest" part="_surname"/> </copy> <copy> <from variable="applyProcessRequest" query="/loanRequestParameters/firstName" part="loanRequestParameters"/> <to variable="schufaRequest" part="_firstname"/> </copy> </assign> <invoke inputVariable="schufaRequest" name="SchufaCheck" operation="validCustomer" outputVariable="schufaResponse" partnerLink="SchufaLink" portType="schufa:SchufaWS"/> <assign name="AssignSchufaDecision"> <copy> <from variable="schufaResponse" part="validCustomerReturn"/> <to variable="applyProcessResponse" query="/loanResponse/approved" part="loanResponse"/> </copy> </assign> <reply name="ApprovalDecision" operation="apply" partnerLink="LoanProcessing" portType="loanapproval:LoanProcessPortType" variable="applyProcessResponse"/> </sequence> </process>
schufa.wsdl<?xml version="1.0" encoding="UTF-8"?> <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:samples:schufa" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="urn:samples:schufa" xsi:schemaLocation="http://schemas.xmlsoap.org/wsdl/ http://schemas.xmlsoap.org/wsdl/"> <message name="validCustomerRequest"> <part name="_surname" type="xsd:string"/> <part name="_firstname" type="xsd:string"/> </message> <message name="validCustomerResponse"> <part name="validCustomerReturn" type="xsd:string"/> </message> <portType name="SchufaWS"> <operation name="validCustomer" parameterOrder="_surname _firstname"> <input name="validCustomerRequest" message="tns:validCustomerRequest"/> <output name="validCustomerResponse" message="tns:validCustomerResponse"/> </operation> </portType> </definitions>
web.xml<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet> <servlet-name>LoanProcessingServlet</servlet-name> <servlet-class>org.jbpm.bpel.tutorial.loanapproval.LoanProcessPortType_Impl</servlet-class> </servlet> <servlet> <servlet-name>relationServlet</servlet-name> <servlet-class>org.jbpm.bpel.relation.jms.RelationServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>LoanProcessingServlet</servlet-name> <url-pattern>/LoanProcessing</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>relationServlet</servlet-name> <url-pattern>/relation</url-pattern> </servlet-mapping> <resource-ref> <res-ref-name>jms/ConnectionFactory</res-ref-name> <res-type>javax.jms.ConnectionFactory</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref> <message-destination-ref> <message-destination-ref-name>jms/LoanProcessing</message-destination-ref-name> <message-destination-type>javax.jms.Queue</message-destination-type> <message-destination-usage>ConsumesProduces</message-destination-usage> </message-destination-ref> </web-app>
webservices.xml<?xml version="1.0" encoding="UTF-8"?> <webservices version="1.1" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:impl="urn:samples:loanapproval" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/j2ee_web_services_1_1.xsd"> <webservice-description> <webservice-description-name>Loan Approval Service</webservice-description-name> <wsdl-file>WEB-INF/wsdl/service.wsdl</wsdl-file> <jaxrpc-mapping-file>WEB-INF/jaxrpc-mapping.xml</jaxrpc-mapping-file> <port-component> <port-component-name>LoanProcessingPort</port-component-name> <wsdl-port>impl:LoanProcessingPort</wsdl-port> <service-endpoint-interface>org.jbpm.bpel.tutorial.loanapproval.LoanProcessPortType</service-endpoint-interface> <service-impl-bean> <servlet-link>LoanProcessingServlet</servlet-link> </service-impl-bean> <handler> <handler-name>LoanProcessingHandler</handler-name> <handler-class>org.jbpm.bpel.service.provider.PortProvider</handler-class> <init-param> <description> name of the port; should match the partner link name </description> <param-name>portName</param-name> <param-value>LoanProcessing</param-value> </init-param> <init-param> <description>time to wait for response messages, in milliseconds</description> <param-name>responseTimeout</param-name> <param-value>60000</param-value> </init-param> </handler> </port-component> </webservice-description> </webservices>
jboss-web.xml<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 2.4//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_4_0.dtd"> <jboss-web> <resource-ref> <res-ref-name>jms/ConnectionFactory</res-ref-name> <jndi-name>java:ConnectionFactory</jndi-name> </resource-ref> <message-destination-ref> <message-destination-ref-name>jms/LoanProcessing</message-destination-ref-name> <jndi-name>queue/loanApprovalQueue</jndi-name> </message-destination-ref> </jboss-web>
bpel-application.xml<?xml version="1.0" encoding="UTF-8"?> <bpelApplication name="loanapproval" xmlns="http://jbpm.org/bpel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jbpm.org/bpel http://jbpm.org/bpel/bpel_application_1_0.xsd"> <partnerLinks> <partnerLink name="SchufaLink"> <partnerRole> <!--wsa:EndpointReference xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"--> <wsa:Address>USE_ACTUAL_URI_FROM_CATALOG</wsa:Address> <wsa:Address>http://localhost:8081/creditprocess/schufa</wsa:Address> <wsa:ServiceName xmlns:serviceNS="urn:samples:schufa">serviceNS:SchufaWSService</wsa:ServiceName> </wsa:EndpointReference> </partnerRole> </partnerLink> </partnerLinks> <serviceCatalogs> <!--urlCatalog contextUrl="http://localhost:8081/"--> <urlCatalog contextUrl="http://127.0.0.1:8080/"> <!-- published WSDL document of the approver Service --> <!--wsdl location="loanapprover/loanApproverPortType?wsdl"/--> <!--wsdl location="wsportal/demo/schufa.wsdl"/--> <!--wsdl location="creditprocess/schufa"/--> <wsdl location="schufa/schufaWS?wsdl"/> </urlCatalog> </serviceCatalogs> </bpelApplication>
jboss-client.xml<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE jboss-client PUBLIC "-//JBoss//DTD Application Client 4.0//EN" "http://www.jboss.org/j2ee/dtd/jboss-client_4_0.dtd"> <jboss-client> <jndi-name>loanapproval-client</jndi-name> <service-ref> <service-ref-name>service/Loanapproval</service-ref-name> <wsdl-override>http://127.0.0.1:8080/loanapproval/loanProcessing?wsdl</wsdl-override> </service-ref> </jboss-client>
application-client.xml<?xml version="1.0" encoding="UTF-8"?> <application-client version="1.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application-client_1_4.xsd"> <display-name>Loanapproval service client</display-name> <service-ref> <service-ref-name>service/Loanapproval</service-ref-name> <service-interface>org.jbpm.bpel.tutorial.loanapproval.LoanApprovalService</service-interface> <!-- placeholder for published WSDL file --> <wsdl-file>USE_JBOSS_CLIENT_XML_OVERRIDE</wsdl-file> <!-- Java<->XML mapping file --> <jaxrpc-mapping-file>META-INF/jaxrpc-mapping.xml</jaxrpc-mapping-file> <port-component-ref> <!-- service endpoint interface class --> <service-endpoint-interface>org.jbpm.bpel.tutorial.loanapproval.LoanProcessPortType</service-endpoint-interface> </port-component-ref> </service-ref> </application-client>
The Schufa partner service:
schufa.imp.wsdl<?xml version="1.0" encoding="UTF-8"?> <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:samples:schufa" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="urn:samples:schufa" xsi:schemaLocation="http://schemas.xmlsoap.org/wsdl/ http://schemas.xmlsoap.org/wsdl/"> <import namespace="urn:samples:schufa" location="schufa.wsdl"/> <binding name="SchufaSOAPBinding" type="tns:SchufaWS"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="validCustomer"> <soap:operation soapAction="urn:samples:schufa:validCustomer"/> <!---soap:operation style="rpc"/--> <input> <soap:body use="literal" namespace="urn:samples:schufa"/> </input> <output> <soap:body use="literal" namespace="urn:samples:schufa"/> </output> </operation> </binding> <service name="SchufaWSService"> <port name="SchufaPort" binding="tns:SchufaSOAPBinding"> <soap:address location="http:/127.0.0.1:8081/creditprocess/schufa"/> <!--soap:address location="REPLACE_WITH_ACTUAL_URI"/--> </port> </service> </definitions>
schufa.wsdl<?xml version="1.0" encoding="UTF-8"?> <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:samples:schufa" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="urn:samples:schufa" xsi:schemaLocation="http://schemas.xmlsoap.org/wsdl/ http://schemas.xmlsoap.org/wsdl/"> <message name="validCustomerRequest"> <part name="_surname" type="xsd:string"/> <part name="_firstname" type="xsd:string"/> </message> <message name="validCustomerResponse"> <part name="validCustomerReturn" type="xsd:string"/> </message> <portType name="SchufaWS"> <operation name="validCustomer" parameterOrder="_surname _firstname"> <input name="validCustomerRequest" message="tns:validCustomerRequest"/> <output name="validCustomerResponse" message="tns:validCustomerResponse"/> </operation> </portType> <!--service name="SchufaWSService"> <port name="SchufaService" binding="impl:SchufaServiceSoapBinding"--> <!--wsdlsoap:address location="http://127.0.0.1:8081/creditprocess/schufa"/--> <!--wsdlsoap:address location="http://127.0.0.1:8081/creditprocess/schufa"/> </port> </service--> </definitions>
web.xml<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet> <servlet-name>schufaServlet</servlet-name> <servlet-class>org.jbpm.bpel.tutorial.schufa.SchufaWS_Impl</servlet-class> </servlet> <servlet-mapping> <servlet-name>schufaServlet</servlet-name> <url-pattern>/schufaWS</url-pattern> </servlet-mapping> </web-app>
webservices.xml<?xml version="1.0" encoding="UTF-8"?> <webservices version="1.1" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:impl="urn:samples:schufa" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/j2ee_web_services_1_1.xsd"> <webservice-description> <webservice-description-name>SchufaService</webservice-description-name> <!-- WSDL implementation file --> <wsdl-file>WEB-INF/wsdl/schufa.impl.wsdl</wsdl-file> <!-- Java<->XML mapping file --> <jaxrpc-mapping-file>WEB-INF/jaxrpc-mapping.xml</jaxrpc-mapping-file> <port-component> <port-component-name>SchufaPort</port-component-name> <!-- WSDL port element (in WSDL implementation file) --> <wsdl-port>impl:SchufaPort</wsdl-port> <service-endpoint-interface> <!-- org.jbpm.bpel.tutorial.serviceName.portTypeName --> org.jbpm.bpel.tutorial.schufa.SchufaWS </service-endpoint-interface> <service-impl-bean> <servlet-link>schufaServlet</servlet-link> </service-impl-bean> </port-component> </webservice-description> </webservices>
.
Thanks once Alex for all.
Bertrand -
4. Re: Request didn't include a SOAP Message
bertrand.njiipwo Dec 15, 2006 8:43 AM (in response to bertrand.njiipwo)I'll like to bring some precision once again.
I have tried some test scenario.
When i specify the service wsdl location: http://localhost.8081/creditprocess/schufa at the first time monitoring component receive a request. Hier some output:Starting daemon thread...ok. - Listening to port: 8081 1. Incoming TCP connection from 127.0.0.1:1089 log4j:WARN Detected problem with connection: java.net.SocketException: Software caused connection abort: socket write error 1. Received request - Request URL: '/creditprocess/schufa' - Request did not include a SOAP message. - Searching endpoint URL with target 'portal:Schufa' - Endpoint URL found: 'http://127.0.0.1:8080/axis/services/SchufaServiceB', known response time is '8000' - Calling remote service (timeout 16000ms)...done. (Call duration: 7581 ms) 1. Sending response to client...done. 1. Request was successfully handled.
but if i deployed the schufa service as process partner and specify the wsdl-location to http://localhost:8080/schufa/schufaWS?wsdl, i can send the message to the service endpoint: http://localhost:8080/schufa/schufaWS. In this case the jbpm-module runns perfectly and i can see the exanged Message persisted in the DB:Client SOAPRequest to loanapproval process: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SOAP-ENV:Body> <m:apply xmlns:m="urn:samples:loanapproval"> <loanRequestParameters> <firstName>MyFirstName</firstName> <lastName>MyLastName</lastName> <amount>1000</amount> </loanRequestParameters> </m:apply> </SOAP-ENV:Body> </SOAP-ENV:Envelope> loanRequestParameters: <?xml version="1.0" encoding="UTF-8"?> <loanRequestParameters xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:m="urn:samples:loanapproval" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <firstName>MyfirstName</firstName> <lastName>MyLastName</lastName> <amount>1000</amount> </loanRequestParameters> loanResponse: <?xml version="1.0" encoding="UTF-8"?> <loanResponse><approved xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapBodyNS="urn:samples:schufa" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="1"/> </loanResponse> validCustomerReturn: <?xml version="1.0" encoding="UTF-8"?><validCustomerReturn xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapBodyNS="urn:samples:schufa" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="1"/> _firstname: <?xml version="1.0" encoding="UTF-8"?> <_firstname xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:m="urn:samples:loanapproval" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">MyFirstName </_firstname> _surname: <?xml version="1.0" encoding="UTF-8"?> <_surname xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:m="urn:samples:loanapproval" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">MyLastName </_surname>
Know when send a soap message directly to http://localhost:8081/creditprocess/schufa and specify the parameter value in the SOAP request its running fine.
Some possible cause of this problem is that i'm try to integrate an non ws4ee web service with my bussiness process. The jBPM module require a java classe as service endpoint interface. With this he can access the message send and can persist this using hibernate (endpoint=http://localhost:8080/schufa/schufaWS). But if the service i'm trying to access is not a java service endpoint (endpoint=http://localhost:8081/creditprocess/schufa) then the service Handler can't access the exchanged soap messages. This may be why the request is sent to the specified endpoint but there is no soap message inside.
With the first prototype the BPEL engine was BPEL4J from IBM and the services was deployed on the SOAP-Engine Axis and the monitoring component (java program) could catch the web service call inside the process execution an redirect it to the monitoring module without problem. Because of some features of jBPM by executing BPEL-Processes i'll like to substituate BPEL4J with jBPM and expect to get full access to the process execution information.
I hope this can help a little bit.
The serverLog is avialabe (email).
Thanks once again
Bertrand Njipwo -
5. Re: Request didn't include a SOAP Message
aguizar Jan 3, 2007 2:59 AM (in response to bertrand.njiipwo)Hi Bertrand,
Does the monitoring component at http://localhost.8081/creditprocess/schufa have a WSDL document? You should include the location of that WSDL document in your service catalog in bpel-application.xml.
The soap:address element in the WSDL document should, in turn, specify the desired endpoint address.
Hope this helps,
-Alejandro -
6. Re: Request didn't include a SOAP Message
bertrand.njiipwo Jan 4, 2007 10:27 AM (in response to bertrand.njiipwo)Hello Alex,
Of course i have specified in bpel-application.xml the location of my URL to the wsdl-document of my service.
But in the server.log file there is some thing curios:2007-01-03 22:53:20,708 DEBUG [org.jboss.ws.server.ServiceEndpoint] WSDL request, using host: milaine
2007-01-03 22:53:20,819 DEBUG [org.jboss.ws.server.WSDLRequestHandler] Mapping import from 'schufa.wsdl' to 'http://milaine:8080/schufa/schufaWS?wsdl&resource=schufa.wsdl'
2007-01-03 22:53:20,819 DEBUG [org.jboss.ws.server.WSDLRequestHandler] Mapping address from 'http://milaine:8080/schufa/schufaWS' to 'http://milaine:8080/schufa/schufaWS'
2007-01-03 22:53:21,199 DEBUG [org.jboss.ws.server.ServiceEndpoint] WSDL request, using host: milaine
2007-01-03 22:53:21,289 DEBUG [org.jbpm.bpel.relation.jms.RelationContext] selected partner port: instance=org.jbpm.bpel.service.exe.PartnerLinkInstance@18c4d4c[name=SchufaLink,id=0], port=SchufaPort
2007-01-03 22:53:21,329 INFO [STDOUT] PortConsumer: AddresseLocation configure to: http://milaine:8080/schufa/schufaWS
is this a problem related to the configuration of jbossws (1.0.4) im using?
because i have in JBOSS_HOME/server/default/deploy/jbossws.sar/jbossws.beans/META-INF/jboss-beans.xml:
property name="alwaysModifySOAPAddress" set to true.
When reading the interface implementation at http://localhost:8080/schufa/schufaWS?wsdl the <soap:address> value specified there is http://localhost:8080/schufa/schufaWS but in my schufa.wsdl the soap:address is http://localhost.8081/creditprocess/schufa: How is this possible?
that why i have swapped it in PortConsumer.java to what i'm expecting (http://localhost.8081/creditprocess/schufa). But it's seems to not work.
Is it possible that this problem related to my jbossws configuration ? i don't really know.
Some one has an idee where could be the problem ? -
7. Re: Request didn't include a SOAP Message
aguizar Jan 4, 2007 12:09 PM (in response to bertrand.njiipwo)OK, I get it now. What happens if you set alwaysModifySOAPAddress to false? That should preserve the original address in the WSDL document, provided it is a valid URL.
-
8. Re: Request didn't include a SOAP Message
bertrand.njiipwo Jan 4, 2007 2:58 PM (in response to bertrand.njiipwo)Hi Alex,
of course: This was the raison why the soap:address element where alway overritten and the HTTP Request arrived to the monitoring component without SOAP Message inside.
SOLUTION:
I was Using Jbossws 1.0.4 and i have perform the following setting:
In BOSS_HOME/server/default/deploy/jbossws.sar/jbossws.beans/META-INF/jboss-beans.xml:
have set the element property name="alwaysModifySOAPAddress" to false. and the specified soap:address value in the service implementation file was readed by org.jbpm.bpel.service.PortConsumer.java as expected.
But the BPEL process execution is still stopping due to exceptions. I'll like to close this thread (Error cause found) and continue the discution in this thread:http://www.jboss.com/index.html?module=bb&op=viewtopic&t=98256
where i described the invoke called, but our invoker is disconnected problem.
Once again thanks Alex.
Best Regards
Bertrand Njipwo