8 Replies Latest reply on Jan 4, 2007 2:58 PM by njipwo Bertrand

    Request didn't include a SOAP Message

    njipwo Bertrand Newbie

      Hello Community

      i have the problem that when a running BPEL process call a web service. There is no SOAPMessage in the request send to the web service.

      How is this possible inside a workflow with jPBM-BPEL ? The service is well running and sending a SOAP Message to the service regarding his WSDL-specification is successfull.

      Is this issue related to the specification of the location of the soap:address-Element in the service.imp.wsdl?

      I mean the location of the wsdl file and the soap:adress-Refence are two things different not? If i specify the soap:adress-Refence as http://127.0.0.1:8089/context/serviceName i mean it's also OK. The SOAP message i'm sending will be included insinde the HTTP-Request to this resource.

      Where is the problem hier?

      can some one help me please ?




        • 1. Re: Request didn't include a SOAP Message
          njipwo Bertrand Newbie

          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
            Alejandro Guizar Master

            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
              njipwo Bertrand Newbie

              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
                njipwo Bertrand Newbie

                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
                  Alejandro Guizar Master

                  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
                    njipwo Bertrand Newbie

                    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
                      Alejandro Guizar Master

                      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
                        njipwo Bertrand Newbie

                        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