8 Replies Latest reply on Jan 17, 2006 3:34 PM by aguizar

    jBPM BPEL calling .NET WS

      Hello all,

      I tried to write a simple wrapper for a .NET Webservice. When I execute it, I get an exception with the following stacktrace:

      10:43:19,046 ERROR [StartListener] could not deliver request
      org.jbpm.graph.def.DelegationException
       at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:299)
       at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:293)
       at
      org.jbpm.bpel.def.BpelDefinition.startProcessInstance(BpelDefinition.java:58)
       at org.jbpm.bpel.service.messager.StartListener.onMessage(StartListener.java:120)
       at org.jboss.mq.SpyMessageConsumer.run(SpyMessageConsumer.java:707)
       at java.lang.Thread.run(Thread.java:595)
      Caused by: org.jbpm.graph.def.DelegationException
       at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:299)
       at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:293)
       at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:293)
       at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:293)
       at org.jbpm.bpel.def.Activity.enter(Activity.java:89)
       at org.jbpm.graph.def.Transition.take(Transition.java:92)
       at org.jbpm.graph.def.Node.leave(Node.java:349)
       at org.jbpm.bpel.def.Activity.leave(Activity.java:149)
       at org.jbpm.bpel.def.ProcessInstanceStarter.visit(ProcessInstanceStarter.java:42)
       at org.jbpm.bpel.def.Receive.accept(Receive.java:67)
       at org.jbpm.bpel.def.ProcessInstanceStarter.visit(ProcessInstanceStarter.java:81)
       at org.jbpm.bpel.def.Sequence.accept(Sequence.java:84)
       at org.jbpm.bpel.def.ProcessInstanceStarter.visit(ProcessInstanceStarter.java:28)
       at org.jbpm.bpel.def.BpelDefinition.startProcessInstance(BpelDefinition.java:55)
       ... 3 more
      Caused by: java.lang.NullPointerException
       at org.jbpm.bpel.service.soap.PortCaller.writeDocumentPart(PortCaller.java:279)
       at org.jbpm.bpel.service.soap.PortCaller.writeDocumentBody(PortCaller.java:247)
       at org.jbpm.bpel.service.soap.PortCaller.writeInputMessage(PortCaller.java:174)
       at org.jbpm.bpel.service.soap.PortCaller.callImpl(PortCaller.java:130)
       at org.jbpm.bpel.service.soap.PortCaller.call(PortCaller.java:93)
       at org.jbpm.bpel.service.messager.MessagerSession.invoke(MessagerSession.java:140)
       at org.jbpm.bpel.service.def.Invoker.invoke(Invoker.java:80)
       at org.jbpm.bpel.def.Invoke.execute(Invoke.java:27)
       at org.jbpm.bpel.def.Activity.enter(Activity.java:84)
       ... 12 more


      The WSDL of the .NET-webservice is as follows:
      <?xml version="1.0" encoding="utf-8"?>
      <wsdl:definitions targetNamespace="http://my.namespace"
      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
      xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
      xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
      xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
      xmlns:tns="http://my.namespace"
      xmlns:s="http://www.w3.org/2001/XMLSchema"
      xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
      xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
      xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
       <wsdl:types>
       <s:schema elementFormDefault="qualified" targetNamespace="http://my.namespace">
       <s:element name="ReverseAndConcatNames">
       <s:complexType>
       <s:sequence>
       <s:element minOccurs="0" maxOccurs="1" name="firstName" type="s:string" />
       <s:element minOccurs="0" maxOccurs="1" name="secondName" type="s:string" />
       </s:sequence>
       </s:complexType>
       </s:element>
       <s:element name="ReverseAndConcatNamesResponse">
       <s:complexType>
       <s:sequence>
       <s:element minOccurs="0" maxOccurs="1" name="ReverseAndConcatNamesResult" type="s:string" />
       </s:sequence>
       </s:complexType>
       </s:element>
       </s:schema>
       </wsdl:types>
       <wsdl:message name="ReverseAndConcatNamesSoapIn">
       <wsdl:part name="parameters" element="tns:ReverseAndConcatNames" />
       </wsdl:message>
       <wsdl:message name="ReverseAndConcatNamesSoapOut">
       <wsdl:part name="parameters" element="tns:ReverseAndConcatNamesResponse" />
       </wsdl:message>
       <wsdl:portType name="SampleServiceSoap">
       <wsdl:operation name="ReverseAndConcatNames">
       <wsdl:input message="tns:ReverseAndConcatNamesSoapIn" />
       <wsdl:output message="tns:ReverseAndConcatNamesSoapOut" />
       </wsdl:operation>
       </wsdl:portType>
       <wsdl:binding name="SampleServiceSoap" type="tns:SampleServiceSoap">
       <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
       <wsdl:operation name="ReverseAndConcatNames">
       <soap:operation soapAction="http://my.namespace/ReverseAndConcatNames" style="document" />
       <wsdl:input>
       <soap:body use="literal" />
       </wsdl:input>
       <wsdl:output>
       <soap:body use="literal" />
       </wsdl:output>
       </wsdl:operation>
       </wsdl:binding>
       <wsdl:binding name="SampleServiceSoap12" type="tns:SampleServiceSoap">
       <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
       <wsdl:operation name="ReverseAndConcatNames">
       <soap12:operation soapAction="http://my.namespace/ReverseAndConcatNames" style="document" />
       <wsdl:input>
       <soap12:body use="literal" />
       </wsdl:input>
       <wsdl:output>
       <soap12:body use="literal" />
       </wsdl:output>
       </wsdl:operation>
       </wsdl:binding>
       <wsdl:service name="SampleService">
       <wsdl:port name="SampleServiceSoap" binding="tns:SampleServiceSoap">
       <soap:address location="http://localhost/ITInformatik.SOA.Sample.WebServiceFacade/SampleService.asmx" />
       </wsdl:port>
       <wsdl:port name="SampleServiceSoap12" binding="tns:SampleServiceSoap12">
       <soap12:address location="http://localhost/ITInformatik.SOA.Sample.WebServiceFacade/SampleService.asmx" />
       </wsdl:port>
       </wsdl:service>
      </wsdl:definitions>


      I debugged the PortCaller code raising the NullPointerException, and I found out, that it searched for a child with name "ReverseAndConcatNames", but there was only a child named "parameters". So, I think that the WSDL part
      <wsdl:message name="ReverseAndConcatNamesSoapOut">
       <wsdl:part name="parameters" element="tns:ReverseAndConcatNamesResponse" />
       </wsdl:message>

      is mis-interpreted by JBPM BPEL.

      Could this be a bug?
      Regards,
      Martin

        • 1. Re: jBPM BPEL calling .NET WS
          aguizar

          From the stack trace information, I assume you're still using alpha 3. Please upgrade to alpha 4 so that we are on the same page.

          I fear alpha 4 will show the same behavior, tough. The code to fetch the part from the message variable is:

          private static void writeDocumentPart(Part part, Element inputData, SOAPEnvelope envelope) throws SOAPException {
           QName elementName = part.getElementName();
           [...]
           String namespaceUri = elementName.getNamespaceURI();
           String localName = elementName.getLocalPart();
           // get part element from input message
           Element inputPartAccessor = XmlUtil.getElement(inputData, part.getName());
           Element inputPartElem = XmlUtil.getElement(inputPartAccessor, namespaceUri, localName);
           [...]
           }
          

          Where inputData is a DOM element whose subelements represent the message parts. Their namespace is null, and their local name is the part name.
          For your WSDL message definition, the inputData parameter should look like this:
          <jbpm:msg0 xmlns:jbpm="http://jbpm.org/bpel">
           <parameters>
           <my:ReverseAndConcatNamesResponse xmlns:my="http://my.namespace" [...]>
           [...]
           </my:ReverseAndConcatNamesResponse>
           </parameters>
          </jbpm:msg0>

          If, when debugging, your inputData has this structure, then there is a bug in jBPM BPEL. Otherwise, your variable contains ill-formed data. In the former case the code should still detect the problem and raise meaningful exceptions. I'll add these checks.

          • 2. Re: jBPM BPEL calling .NET WS

            I thougt I used alpha 4, but I'm not sure. I rerun my tests with alpha 4, and the exception was the same, the stacktrace (now with linenumbers from alpha 4) is:

            org.jbpm.graph.def.DelegationException
             at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:299)
             at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:293)
             at org.jbpm.bpel.def.BpelDefinition.startProcessInstance(BpelDefinition.java:58)
             at org.jbpm.bpel.service.messager.StartListener.onMessage(StartListener.java:120)
             at org.jboss.mq.SpyMessageConsumer.run(SpyMessageConsumer.java:707)
             at java.lang.Thread.run(Thread.java:595)
            Caused by: org.jbpm.graph.def.DelegationException
             at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:299)
             at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:293)
             at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:293)
             at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:293)
             at org.jbpm.bpel.def.Activity.enter(Activity.java:89)
             at org.jbpm.graph.def.Transition.take(Transition.java:92)
             at org.jbpm.graph.def.Node.leave(Node.java:349)
             at org.jbpm.bpel.def.Activity.leave(Activity.java:149)
             at org.jbpm.bpel.def.ProcessInstanceStarter.visit(ProcessInstanceStarter.java:42)
             at org.jbpm.bpel.def.Receive.accept(Receive.java:67)
             at org.jbpm.bpel.def.ProcessInstanceStarter.visit(ProcessInstanceStarter.java:81)
             at org.jbpm.bpel.def.Sequence.accept(Sequence.java:84)
             at org.jbpm.bpel.def.ProcessInstanceStarter.visit(ProcessInstanceStarter.java:28)
             at org.jbpm.bpel.def.BpelDefinition.startProcessInstance(BpelDefinition.java:55)
             ... 3 more
            Caused by: java.lang.NullPointerException
             at org.jbpm.bpel.service.soap.PortCaller.writeDocumentPart(PortCaller.java:270)
             at org.jbpm.bpel.service.soap.PortCaller.writeDocumentBody(PortCaller.java:246)
             at org.jbpm.bpel.service.soap.PortCaller.writeInputMessage(PortCaller.java:173)
             at org.jbpm.bpel.service.soap.PortCaller.callImpl(PortCaller.java:129)
             at org.jbpm.bpel.service.soap.PortCaller.call(PortCaller.java:92)
             at org.jbpm.bpel.service.messager.MessagerSession.invoke(MessagerSession.java:140)
             at org.jbpm.bpel.service.def.Invoker.invoke(Invoker.java:80)
             at org.jbpm.bpel.def.Invoke.execute(Invoke.java:27)
             at org.jbpm.bpel.def.Activity.enter(Activity.java:84)
             ... 12 more


            The inputData looks like the following:
            <jbpm:msg0 xmlns:jbpm="http://jbpm.org/bpel">
             <parameters xmlns:ns1="http://bs.it-informatik.de/bpel/NETtestProcess"
             xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
             <firstName>
             Martin
             </firstName>
             <secondName>
             Steinle
             </secondName>
             </parameters>
            </jbpm:msg0>
            


            I think, my variable cannot contain ill-formed data, because it has the correct message type and is filled by the same wsdl-operation the invoke operation uses; my bpel-process is a simple proxy of the form:
            [...]
            <sequence>
             <receive variable="myVar" operation="ReverseAndConcatNames" portType="rcn:SampleServiceSoap" [...]/>
             <invoke inputVariable="myVar" operation="ReverseAndConcatNames" portType="rcn:SampleServiceSoap" [...]/>
             <reply [...]/>
            </sequence>
            


            Thanks for your help,
            Martin



            • 3. Re: jBPM BPEL calling .NET WS
              aguizar

              There is an interop issue here. We don't support publishing doc/lit endpoints yet. There is an open issue, BPEL-76 tracking that.

              Let's focus on what we can do right now to handle the problem. According to WS-I Basic Profile, RPC/literal operations must use messages with parts described only with XML Schema types. When presented with an element part, each implementation will react differently to this outruled situation.

              Your client seems to put the element content directly in the part accessor. However, jBPM BPEL expects the element to be the only child of the part accessor:

              <jbpm:msg0 xmlns:jbpm="http://jbpm.org/bpel">
               <parameters>
               <my:ReverseAndConcatNames xmlns:my="http://my.namespace">
               <firstName>Martin</firstName>
               <secondName>Steinle</secondName>
               </my:ReverseAndConcatNames>
               </parameters>
              </jbpm:msg0>

              As a workaround, convert the received message to the expected form:
              <variables>
               <variable name="myVar" messageType="rcn:ReverseAndConcatNamesSoapIn" />
               <variable name="myVar2" messageType="rcn:ReverseAndConcatNamesSoapIn" />
              </variables>
              <sequence>
               <receive variable="myVar" operation="ReverseAndConcatNames" portType="rcn:SampleServiceSoap" [...]/>
               <assign>
               <copy>
               <from variable="myVar" part="parameters"/>
               <to variable="myVar2" part="parameters" query="/rcn:ReverseAndConcatNames"/>
               </copy>
               </assign>
               <invoke inputVariable="myVar2" operation="ReverseAndConcatNames" portType="rcn:SampleServiceSoap" [...]/>
               <reply [...]/>
              </sequence>


              • 4. Re: jBPM BPEL calling .NET WS

                Thanks for your help! With your workaround, it is working.
                Beacuse my .NET Webservice contains some errors, it responded sometimes with SOAP Fault messages. These caused a RuntimeException in JBPM BPEL:

                16:04:48,531 ERROR [StartListener] could not deliver request
                org.jbpm.graph.def.DelegationException
                 at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:299)
                 at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:293)
                 at org.jbpm.bpel.def.BpelDefinition.startProcessInstance(BpelDefinition.java:58)
                 at org.jbpm.bpel.service.messager.StartListener.onMessage(StartListener.java:120)
                 at org.jboss.mq.SpyMessageConsumer.run(SpyMessageConsumer.java:707)
                 at java.lang.Thread.run(Thread.java:595)
                Caused by: org.jbpm.graph.def.DelegationException
                 at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:299)
                 at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:293)
                 at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:293)
                 at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:293)
                 at org.jbpm.bpel.def.Activity.enter(Activity.java:89)
                 at org.jbpm.graph.def.Transition.take(Transition.java:92)
                 at org.jbpm.graph.def.Node.leave(Node.java:349)
                 at org.jbpm.bpel.def.Activity.leave(Activity.java:149)
                 at org.jbpm.bpel.def.ProcessInstanceStarter.visit(ProcessInstanceStarter.java:42)
                 at org.jbpm.bpel.def.Receive.accept(Receive.java:67)
                 at org.jbpm.bpel.def.ProcessInstanceStarter.visit(ProcessInstanceStarter.java:81)
                 at org.jbpm.bpel.def.Sequence.accept(Sequence.java:84)
                 at org.jbpm.bpel.def.ProcessInstanceStarter.visit(ProcessInstanceStarter.java:28)
                 at org.jbpm.bpel.def.BpelDefinition.startProcessInstance(BpelDefinition.java:55)
                 ... 3 more
                Caused by: org.jbpm.graph.def.DelegationException
                 at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:299)
                 at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:293)
                 at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:293)
                 at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:293)
                 at org.jbpm.bpel.def.Activity.enter(Activity.java:89)
                 at org.jbpm.graph.def.Transition.take(Transition.java:92)
                 at org.jbpm.graph.def.Node.leave(Node.java:349)
                 at org.jbpm.bpel.def.Activity.leave(Activity.java:149)
                 at org.jbpm.bpel.def.Assign.execute(Assign.java:36)
                 at org.jbpm.bpel.def.Activity.enter(Activity.java:84)
                 ... 12 more
                Caused by: java.lang.RuntimeException: no wsdl fault matches the contents of the soap detail element: org.jboss.axis.message.SOAPElementAxisImpl@fd9d27[[detail: null]]
                 at org.jbpm.bpel.service.soap.PortCaller.readFault(PortCaller.java:502)
                 at org.jbpm.bpel.service.soap.PortCaller.call(PortCaller.java:97)
                 at org.jbpm.bpel.service.messager.MessagerSession.invoke(MessagerSession.java:140)
                 at org.jbpm.bpel.service.def.Invoker.invoke(Invoker.java:80)
                 at org.jbpm.bpel.def.Invoke.execute(Invoke.java:27)
                 at org.jbpm.bpel.def.Activity.enter(Activity.java:84)
                 ... 17 more


                Looking at the code, I think, the SOAP faults generated by Microsoft IIS do not correspond to the SOAP faults jbpm bpel expects. I don't know if it is possible to make IIS produce SOAP faults jbpm understands, but if not, it would be great if jbpm bpel would provide some information of the SOAP faults received from MS IIS instead of simply throwing a RuntimeException. Here are two of the SOAP fault messages that caused RuntimeExceptions:
                <soapenv:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
                 <soap:Header>
                 <wsa:Action xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
                 http://schemas.xmlsoap.org/ws/2004/03/addressing/fault
                 </wsa:Action>
                 <wsa:MessageID>
                 uuid:c45ff8fa-f54e-4ceb-99ef-d1458b39dac0
                 </wsa:MessageID>
                 <wsa:RelatesTo>
                 uuid:a0f43bce-492f-4380-91be-ab96cd7d3586
                 </wsa:RelatesTo>
                 <wsa:To>
                 http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous
                 </wsa:To>
                 <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
                 <wsu:Timestamp wsu:Id="Timestamp-9aff2810-527c-4752-b4ff-72f624262952" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
                 <wsu:Created>
                 2006-01-11T15:05:14Z
                 </wsu:Created>
                 <wsu:Expires>
                 2006-01-11T15:10:14Z
                 </wsu:Expires>
                 </wsu:Timestamp>
                 </wsse:Security>
                 </soap:Header>
                 <soap:Body>
                 <soap:Fault>
                 <faultcode>
                 soap:Server
                 </faultcode>
                 <faultstring>
                 Server was unable to process request. ---> Object reference not set to an instance of an object.
                 </faultstring>
                 <detail>
                 </detail>
                 </soap:Fault>
                 </soap:Body>
                </env:soapenv:Envelope>

                <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
                 <soap:Header>
                 <wsa:Action xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
                 http://schemas.xmlsoap.org/ws/2004/03/addressing/fault
                 </wsa:Action>
                 <wsa:MessageID>
                 uuid:2f3d64bd-32b1-481d-a0c4-38270f2ba4b9
                 </wsa:MessageID>
                 <wsa:RelatesTo>
                 uuid:d767334d-6c39-4e69-b1ac-d4adb7006af2
                 </wsa:RelatesTo>
                 <wsa:To>
                 http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous
                 </wsa:To>
                 <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
                 <wsu:Timestamp wsu:Id="Timestamp-1043946e-37d6-4d3e-88a3-b03670f0ea71" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
                 <wsu:Created>
                 2006-01-11T13:44:54Z
                 </wsu:Created>
                 <wsu:Expires>
                 2006-01-11T13:49:54Z
                 </wsu:Expires>
                 </wsu:Timestamp>
                 </wsse:Security>
                 </soap:Header>
                 <soap:Body>
                 <soap:Fault>
                 <faultcode>
                 soap:Client
                 </faultcode>
                 <faultstring>
                 Server did not recognize the value of HTTP Header SOAPAction: .
                 </faultstring>
                 <detail>
                 </detail>
                 </soap:Fault>
                 </soap:Body>
                </soapenv:Envelope>


                Regards,
                Martin



                • 5. Re: jBPM BPEL calling .NET WS
                  aguizar

                  Another interop problem. The detail element of the fault you are getting is empty. Consider the statement in BPEL, section 11.3:

                  [T]he WSDL 1.1 standard SOAP binding explicitly precludes mapping any information from an abstract fault message to a SOAP Fault other than the contents of the detail element. In other words, there is no standard way to relate the faultcode, faultstring and faultactor sub-elements of a SOAP Fault element to data visible to a WS-BPEL process.

                  Even worse:
                  This specification does not provide a resolution for this problem.

                  It makes sense for these faults not no have a detail element, since they are system faults rather than business faults, much like unchecked vs. checked exceptions. I could raise something like jbpm:systemFault with a message containing the faultcode, faultstring and faultactor items and then pass that to the fault handling mechanism (not yet finished, unfortunately). This solution, and any other, would be nonportable, tough. This is a good issue to take to the OASIS TC :-)


                  • 6. Re: jBPM BPEL calling .NET WS

                    Hello again,

                    once again, I tried to call my .NET-Webservice from jbpm bpel. I realized, that the web service doesn't get its parameters, they are simply null. When i looked at the SOAP message, jbpm bpel sends, I found the reason. The message should look like

                    <soapenv:Envelope
                     xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                     <soapenv:Body>
                     <ReverseAndConcatNames xmlns="http://my.namespace">
                     <firstName>Martin</firstName>
                     <secondName>Steinle</secondName>
                     </ReverseAndConcatNames>
                     </soapenv:Body>
                    </soapenv:Envelope>

                    but it looks like the following:
                    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                     xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                     <soapenv:Body>
                     <ns1:ReverseAndConcatNames xmlns:ns1="http://my.namespace" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                     xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                     <firstName>Martin</firstName>
                     <secondName>Steinle</secondName>
                     </ns1:ReverseAndConcatNames>
                     </soapenv:Body>
                    </soapenv:Envelope>

                    as you can see, the difference is in the elements and , which both have no namespace associated with them.

                    For testing purposes, i created a Java-Client for the .NEt webservice with Axis' WSDL2Java tool. This client worked properly, in fact, it created the first SOAP message quoted above.
                    Can you help me: Am I the reason for this error or is it possibly jbpm bpel?

                    Thanks again for your help,
                    Martin

                    • 7. Re: jBPM BPEL calling .NET WS
                      aguizar

                      Several sources, including developerWorks suggest avoiding the default namespace in instance data, that is why you see the prefix in the second case.

                      I realize the children should also have a prefix in this case, tough. This is a bug - could you file a JIRA issue?

                      • 8. Re: jBPM BPEL calling .NET WS
                        aguizar

                        I just remembered we already have an issue on default namespace declarations: BPEL-69. I reopened it. Thanks for bringing the problem up.