1 Reply Latest reply: Oct 29, 2009 9:54 PM by 843830 RSS

    BPEL engine sets wrong Content-Type on calling an external web service

      I have a WSDL for an external web service (which as it happens is running in Websphere locally) and have implemented it as a
      partnerlink on a BPEL diagram in an SOA composite project.
      The binding style is Document and if you use SOAPUI to test it it
      works fine. Tracing on the web service's server shows the SOAP request
      coming in. It has a content-type of text/xml, as expected. If I do a
      JUnit test from NetBeans based on this WSDL alone it also works - same result. BUT if I do
      a full test and call my BPEL process the invocation of this service
      from BPEL fails.

      On the Test result you see
      BPCOR-6135:A fault was not handled in the process scope; Fault Name is http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/ErrorHandling}systemFault;
      (This happens because I did not handle the fault in the BPEL.)

      On the trace I see it now has Content-type of
      application/xop+xml. Why would the Sun BPEL engine change this? I just
      accepted the usual defaults when I created the PartnerLink and the
      Invoke. Anyway, the format of the request doesn't match what the WS server expects, so it fails.
      As far as I'm aware I'm just using SOAP1.1. This is NetBeans 6.5 with
      Glassfish 2.1. I tried with NetBeans 6.7 and it got worse, not better.
      I would certainly appreciate any advice?

        • 1. Re: BPEL engine sets wrong Content-Type on calling an external web service
          Perhaps when the BPEL file based process calls the WSDL file to execute,their message communication is not correct.

          the head part in the WSDL file should be manually set to "text/xml", or the IDE or Server will use the default value;
          for example as follow:
          SOAPUI tool would use the default value "text/xml" to request.(depends the tool support).
          NetBeans tool would use the default value "text/xml" to request.
          when you do a full test and you do not set the head "context-type" value ,the WSDL file use the server's default head
          value"application/xop-xml" so that return the contents under the control of the server's default value.

          I hope these will be useful for you.