6 Replies Latest reply: Jan 29, 2009 3:04 PM by 843830 RSS

    Can .Net Web services be invoked inside BPEL process?

    843830
      I need to consume .Net services inside my BPEL.
      Is it possible currently?

      Edited by: sachin.agrawal on Oct 17, 2007 12:11 PM
        • 1. Re: Can .Net Web services be invoked inside BPEL process?
          843830
          Yes, through http binding which includes WSIT layer, it is possible.
          • 2. Re: Can .Net Web services be invoked inside BPEL process?
            843830
            Yeah.
            What you need to do is using Netbeans create a BPEL Module. Right click on the project and add an External WSDL. Then you have the option of pointing it to the url of the wsdl location (?wsdl) or you can download the wsdl locally and import the wsdl that way.
            • 3. Re: Can .Net Web services be invoked inside BPEL process?
              843830
              Well i've already tried it. But i found some error ..

              "Endpoint reference is not available from the JBI corresponding to the service name"

              Then i looked in to the wsdl and found an unusual thing..

              <wsdl:binding name="ISPWebServicesSoap" type="tns:ISPWebServicesSoap">
              <soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
              <wsdl:operation name="operation">
              <soap:operation soapAction="http://abcd.net/WebServices/operation" 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="ISPWebServicesSoap12" type="tns:ISPWebServicesSoap">
              <soap12:binding transport="http://schemas.xmlsoap.org/soap/http"/>
              <wsdl:operation name="operation">
              <soap12:operation soapAction="http://abcd.net/WebServices/operation" 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="ISPWebServices">
              <wsdl:port name="ISPWebServicesSoap" binding="tns:ISPWebServicesSoap">
              <soap:address location="http://10.4.3.42/dotNet/ISPWebServices.asmx"/>
              </wsdl:port>
              <wsdl:port name="ISPWebServicesSoap12" binding="tns:ISPWebServicesSoap12">
              <soap12:address location="http://10.4.3.42/dotNet/ISPWebServices.asmx"/>
              </wsdl:port>
              </wsdl:service>

              so the problem might be ..

              there are two bindings and two ports and either the BC or SE is not able to decide which endpoint it should connect to.

              Further when i commented out the second binding and the second port (soap12) declaration, it worked fine.
              May be a change is required which allows you to select the port with in BC (SOAP).
              • 4. Re: Can .Net Web services be invoked inside BPEL process?
                843830
                Yes one can consume a .net web service inside a BPEL process.But some trick is needed to identify which port is to be used. As currently .net guys published two port for each method for different versions of soap.
                • 5. Re: Can .Net Web services be invoked inside BPEL process?
                  843830
                  Do we have any solution to consume the .Net service which has two ports (SOAP and SOAP12) in netBeans 6.1 ?

                  Still we are having issues in consuming .Net service. Even when CASA application is built we see .Net partner link is not created. We tried creating partner link manually in CASA, then rebuild and deploy. Still we have the error.

                  Any inputs ?
                  • 6. Re: Can .Net Web services be invoked inside BPEL process?
                    843830
                    I am able to invoke the .Net service(which has two ports SOAP and SOAP12) successfully.

                    The trick here is, Service Assembly cannot bind the .net port, since there are two ports. We need to explicity bind the .net port.

                    Steps:
                    1. Open the service assembly, in design view.
                    2. Under JBI modules, select the moduule.
                    3. On the upper split of the JBI module, Right click and select "Load WSDL Port"
                    4. Select the .net Port which you want to bind
                    5. Then map the JBI module to the .net SOAP.
                    6. Build and deploy.

                    Trick is simple.