5 Replies Latest reply: Apr 24, 2012 2:46 PM by 783332 RSS

    BPM11g Deployment - End point references

    sgumpula
      Hi ,

      I am working on automating deployment process for BPM 11g applications using ANT/WLST. I am facing the issue described below.

      When a BPM11g process queries an external service during runtime by retrieving WSDL and XSD(s) through http GETs, and if the wsdl url is not available at that moment, the deployment shouldn't stop and it should continue.

      1. Is there a way we can control it (e.g. deployment option or engine setting)?
      2. Is it possible to resolve this using abstract WSDLs/MDS?
      3. Any other solution?

      Regards,
      Subha
        • 1. Re: BPM11g Deployment - End point references
          783332
          Hello,

          1) No, I don't think so.
          2) Yes, you can store the abstract WSDLs in MDS, and use that reference. I can go into more detail on how to do it if you need it.
          3) I think that using Oracle Service Bus also solves that problem, since you'll be referencing the WSDLs in the OSB.


          Hope this helps,
          Diogo Henriques
          • 2. Re: BPM11g Deployment - End point references
            sgumpula
            Hello Diogo,

            Thanks for the prompt response.
            For point 2, could you please help me that?
            Also I have one more question.While deploying using the ANT script, it checks if the URL is available and if not available it gives connection refused exception.So if we use abstract wsdl , as it will not have the binding information, will it not give the same problem? Correct me if I am wrong here.

            Regards,
            Subhashini
            • 3. Re: BPM11g Deployment - End point references
              783332
              Hello,

              on how to deploy info to the MDS you can check the documentation here - http://docs.oracle.com/cd/E23943_01/dev.1111/e10224/sca_lifecycle.htm#CACFEAJJ
              You basically need to create a deployment profile of type jar, and define what files you want to put there. It should be the wsdl and any xsd it references.

              Then before you reference it in a composite, you first need to create a SOA-MDS connection in jdeveloper, for which you first need to create a database connection to the MDS schema (something like DEV_MDS). This is done in the resource palette.
              Then on your composite, when you're adding the reference in the "WSDL URL" field click the button "Find Existing WSDLs", then on the dropdown at the top choose resource palette, then navigate through the SOA-MDS connection you created, then apps, and then you should see the wsdl you deployed to the MDS. Select it and click ok. Finish defining the service and click ok. It should give you a warning about the referenced WSDL being abstract and that you'll need to add the bindings. Anyway it will add the service. If you then change from Design to Source mode and search for the service you'll see that it has something like «ui:wsdlLocation="oramds:/apps/....wsdl">», that's the reference to the wsdl in the mds, and that's what jdeveloper will use when compiling your project. You'll also notice that the bindings and location are empty. You'll need to fill them with the appropriate info either here or during deploy with a configuration plan. During deploy it will check that there's a value in the bindings, but it will not check the URL. That is only accessed when the service is actually called, at which point it either is able to access it or fails :)

              I haven't used the ANT scripts but I assume it doesn't check the bindings either.

              Hope this helps. Tell me if you need me to clarify anything.

              Regards,
              Diogo Henriques
              • 4. Re: BPM11g Deployment - End point references
                sgumpula
                Hi ,

                Thank you again for the detailed explanation. During compile time , I agree that using abstract wsdl would solve the problem.
                But while deployment using the Ant Script, it check if the url is available and if not it gives the below error:

                [deployComposite] Creating HTTP connection to host:<Host_Name>, port:8001

                [deployComposite] Received HTTP response from the server, response code=500

                [deployComposite] —->response code=500, error:Error during deployment: Operation failed on node Member(Id=1, Timestamp=2011-04-12

                and in the log files we see the below message:
                Connection refused (errno:239): WSDLException: faultCode=INVALID_WSDL: Error reading import of <WSDL_Name>: oracle.j2ee.ws.wsdl.LocalizedWSDLException: WSDLException: faultCode=PARSER_ERROR: Failed to read wsdl file at: “<WSDL_URL>”, caused by: java.net.ConnectException. : java.net.ConnectException: Connection refused (errno:239)

                So while deployment, it is actually checking if the url is available or not and if not deployment halts with the connection refused error.
                Having MDS is the only solution?


                Regards,
                Subhashini
                • 5. Re: BPM11g Deployment - End point references
                  783332
                  Hi,

                  I've never used the Ant scripts so I didn't knew it checked the url. Odd because I thought the weblogic used those under the hoods.

                  Anyway, that's the only solution I know of.


                  Regards,
                  Diogo Henriques