This content has been marked as final. Show 5 replies
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,
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.
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.
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?
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.