Using custom wsdl to esb routing service node
Hi,
I am working on a ESB flow, The entire flow works with ESB generated WSDLs. But, now, I want to use our own WSDL files, so I configured the starting Routing Service node to use existing WSDL.
To do this, I made the following changes.
Initially I was feeding XML file throug a File Reader node, and it was easy to test. Now, since I am working with our own WSDL, I removed File Reader node and created another Routing Service node with uses our custom WSDL file. I am now testing the flow by using OC4J web services feature. It provided me a web based form where in I can populate/feed values in. When I do this, I get an error like below:
java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: Software caused connection abort: connect
Does anybody know how to fix this?
Thanks,
sorry your '"mysoapaction"' funda didnt work....
can you tell me that what should be the value in p_url??
http_req := utl_http.begin_request(p_url, 'POST', 'HTTP/1.1');
utl_http.set_header(http_req, 'Content-Type', 'text/xml');
utl_http.set_header(http_req, 'Content-Length', length(request_text));
utl_http.set_header(http_req, 'SOAPAction', p_soap_action);
utl_http.write_text(http_req, request_text);
http_resp := utl_http.get_response(http_req);
utl_http.get_header_by_name(http_resp,'Content-Length',l_head_out);
l_cont_length := to_number(l_head_out);
IF l_cont_length > 0
THEN
utl_http.read_text(http_resp, p_response);
END IF;
Similar Messages
-
ESB Routing Service Byte Order Mark error
Hi,
I have a esb routing service to accept soap messages from an external system. The external system sents messages with a Byte Order Mark for UTF8 at the start. If i look at the tcp messages i see the following:
POST /event/DefaultSystem/CaseVerhuizing/EsbStuf0204Service HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client
Protocol 2.0.50727.42)
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://www.egem.nl/StUF"
Host: ux920:7777
Content-Length: 2382
Expect: 100-continue
Connection: Keep-Alive
HTTP/1.1 100 Continue
...<?xml version="1.0" encoding="utf-8"?><soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
The three dots signify the hexadecimal value EF BB BF which is for UTF8. This raises an error however in iAS:
HTTP/1.1 400 Bad Request
Date: Mon, 16 Jul 2007 14:41:32 GMT
Server: Oracle-Application-Server-10g/10.1.3.1.0 Oracle-HTTP-Server
Content-Length: 158
Connection: close
Content-Type: text/html; charset=ISO-8859-1
Bad Request
Error parsing envelope: (1, 1) Start of root element
expected
It seems the esb routing service is trying to parse the Byte Order Mark as xml and therfore can not find the soap envelope tag? Any help is appreciated!
Kind Regards,
Andre Jochems
Message was edited by:
ajochemsHi Andre,
We got exactly the same error as you did. Your analysis is also correct; the first 3 bytes of the reply are not interpreted by BPEL/ESB as a BOM, but as 'real' characters.
The problem is due to the fact that the UTF-8 BOM is actually optional in the specifications, and obligatory for UTF-16. The UTF-8 BOM practically has no meaning, and is never used in most SOA applications. However the guys that made the webservice you need to consume are (wrongly) convinced that the UTF-8 BOM is supposed to be there according to the OASIS/W3C specs. Which is not true btw...
For more info on BOMs, check: http://en.wikipedia.org/wiki/Byte_Order_Mark
Unfortunately I don't have the code for our 'proxy' service anymore. I remember that we simply made a little servlet, that uses input- and outputstreams. The inputstream then filters the BOM. Remember to also proxy the WSDL to 'rewrite' the endpoint ;-)
HTH,
Bas -
How to generate a Web Service Proxy for an ESB Routing Service?
Hi,
I have a SOAP service behind an ESB Routing Service. I am aware that i can call this ESB Service at the SOAP endpoint which can be found at the ESB Console after registration.
But, i want to invoke this service using a Web Service Proxy. My understanding is that, i need to use the WSDL generated for the ESB Routing Service to generate the proxy. The WSDL which can be seen in JDeveloper does not have any soap bindings and hence the tool does not allow me to generate any proxy.
Also, the two WSDLs whose URLs can be found at the ESB Console do not have the soap endpoint properties.
Can someone help me out on the same?
Thanks and regards,
Priya.Priya,
Just take the SOAP endpoint and suffix it with a ?wsdl
Even the Concrete WSDL endpoint should be having a SOAP endpoint.
HTH
Uday -
Problem with ESB routing service
I have an ESB project that has a routing service to route a request message to 2 separate web services depending on some particular content in the message.
simple classic content-based routing.
i built a prototype on my local virtual machine, it worked fine.
now i am building the real project at the client site, it is not working. here is some of the things i found;
in my working prototype, after i deploy the ESB project into OC4J, i can see that a web service end point is created for me on esb-rt application in oc4j, with a port like "__soap_myrouting_execute_ppt", and it would be the entry point to my routing service;
but in the other environment, after i deploy the ESB project, there is nothing created under esb-rt;
in my working prototype, if i go into ESB console, under the "definition" tab of my routing service, i can click on the "concrete WSDL URL" and it gives me the wsdl for the routing service;
but in the other environment, when i click on the "concrete WSDL URL", it shows an error page in my browser, "The XML page cannot be displayed ... XML document must have a top level element";
i suppose this is because the esb-rt port has not been created properly and hence the wsdl is not there to be viewed.
can anyone help with this or give me some direction as to where to look for logs for more details.
thanks!after a bit of hunting on the BPEL server, i managed to get some detailed error from j2ee log;
it's consistent with my observation and i know what's wrong with it, it's the <server name> pointing to a wrong place
it should be pointing to our dev server but this logged detail shows it's pointing to out UAT server for some reason;
I don't know how it ended up like this, but can someone tell me how to fix it? thanks.
<SUPPL_DETAIL><![CDATA[oracle.webservices.provider.ProviderException: java.io.IOException: Server returned HTTP response code: 500 for URL: http://<server name>:80/esb/wsil/MyTestSystem/MySOAPFacade?wsdl
at oracle.j2ee.ws.server.provider.ProviderConfigImpl.addService(ProviderConfigImpl.java:126)
at oracle.tip.esb.configuration.ServiceBusConstants.addService(ServiceBusConstants.java:888)
at oracle.tip.esb.common.system.ServiceEventsHandler.handleCreateService(ServiceEventsHandler.java:91)
at oracle.tip.esb.common.system.MetadataChangeListener.handleServiceEvent(MetadataChangeListener.java:136)
at oracle.tip.esb.common.system.MetadataChangeListener.onMetadataChange(MetadataChangeListener.java:85)
at oracle.tip.esb.common.control.ControlMessageHandler.handleMessage(ControlMessageHandler.java:115)
at oracle.tip.esb.server.dispatch.agent.ESBWork.process(ESBWork.java:178)
at oracle.tip.esb.server.dispatch.agent.ESBWork.run(ESBWork.java:132)
at oracle.j2ee.connector.work.WorkWrapper.runTargetWork(WorkWrapper.java:242)
at oracle.j2ee.connector.work.WorkWrapper.doWork(WorkWrapper.java:215)
at oracle.j2ee.connector.work.WorkWrapper.run(WorkWrapper.java:190)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:825)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.io.IOException: Server returned HTTP response code: 500 for URL: http://<server name>:80/esb/wsil/MyTestSystem/MySOAPFacade?wsdl
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1149)
at java.net.URL.openStream(URL.java:1007)
at oracle.j2ee.ws.server.provider.WSDLUtils.getWSDLDefinition(WSDLUtils.java:48)
at oracle.j2ee.ws.server.provider.ProviderConfigImpl.addService(ProviderConfigImpl.java:120)
... 12 more
]]></SUPPL_DETAIL> -
Why use custom wsdl vs. generic wsdl?
I downloaded the custom wsdl and it's generic version and the generic version is double the size of the custom one.
1) Why generic version is so big?
2) Why would you use custom wsdl vs. generic version other than the fact the name is easy to read for custom wsdl?
Thanks#1, because custom wsdl only contains the fields you used, while generic version show all of them.
#2, like you mentioned, custom name is easy to read. what's more, if you have some functional extension integration development experience, you will find it will much more convenient for developer to build and maintain the code. -
CAVS Integration error | The process was with ESB Routing services
Hi All,
We tried configuring the CAVS to integrate with simulator.
When we execute the test case, we are getting the below error:
Scenario is :
1. Created the Requester ABCS in ESB and it is been routing the message to EBS canonical.
2. Provider ABCS is created and been talking to the participating application in our case it is BPEL service.
Everything was good to study the documents but when we executed the scenario, getting the below exception..
Need an urgent help regarding this...
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header/><env:Body><env:Fault xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><faultcode xmlns="">env:ESBMessageProcessingFailed</faultcode><faultstring xmlns="">ESB Couldn't process message due to unhandled exception</faultstring><detail xmlns=""><EventName>AS400Sys.ProcessSubscriptionCustomerGWReqABCSImpl.process</EventName><Cause>An unhandled exception has been thrown in the ESB system. The exception reported is: "oracle.tip.esb.server.common.exceptions.BusinessEventRetriableException: An unhandled exception has been thrown in the ESB system. The exception reported is: "org.collaxa.thirdparty.apache.wsif.WSIFException: exception on JaxRpc invoke: ; nested exception is:
dynamic invocation error: oracle.j2ee.ws.saaj.soap.SOAPVersionMismatchException: Mime Header Content-Type: text/xml requires SOAP envelope namespace: http://schemas.xmlsoap.org/soap/envelope/; nested exception is:
dynamic invocation error: oracle.j2ee.ws.saaj.soap.SOAPVersionMismatchException: Mime Header Content-Type: text/xml requires SOAP envelope namespace: http://schemas.xmlsoap.org/soap/envelope/
at com.collaxa.cube.ws.wsif.providers.oc4j.jaxrpc.WSIFOperation_JaxRpc.invokeOperation(WSIFOperation_JaxRpc.java:1804)
at com.collaxa.cube.ws.wsif.providers.oc4j.jaxrpc.WSIFOperation_JaxRpc.invokeRequestResponseOperation(WSIFOperation_JaxRpc.java:1531)
at com.collaxa.cube.ws.wsif.providers.oc4j.jaxrpc.WSIFOperation_JaxRpc.executeRequestResponseOperation(WSIFOperation_JaxRpc.java:1210)
at oracle.tip.esb.server.common.wsif.WSIFInvoker.executeOperation(WSIFInvoker.java:907)
at oracle.tip.esb.server.common.wsif.WSIFInvoker.nextService(WSIFInvoker.java:810)
at oracle.tip.esb.server.common.wsif.WSIFInvoker.nextService(WSIFInvoker.java:832)
at oracle.tip.esb.server.service.impl.outadapter.OutboundAdapterService.nextService(OutboundAdapterService.java:223)
at oracle.tip.esb.server.service.impl.outadapter.OutboundAdapterService.processBusinessEvent(OutboundAdapterService.java:135)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatchNonRoutingService(InitialEventDispatcher.java:406)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(InitialEventDispatcher.java:164)
at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1988)
at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1467)
at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(EventUtils.java:205)
at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(EventUtils.java:136)
at oracle.tip.esb.server.service.EsbRouterSubscription.onBusinessEvent(EsbRouterSubscription.java:309)
at oracle.tip.esb.server.dispatch.EventDispatcher.executeSubscription(EventDispatcher.java:138)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscription(InitialEventDispatcher.java:545)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscriptions(InitialEventDispatcher.java:527)
at oracle.tip.esb.server.dispatch.EventDispatcher.dispatchRoutingService(EventDispatcher.java:94)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(InitialEventDispatcher.java:160)
at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1988)
at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1467)
at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(EventUtils.java:205)
at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(EventUtils.java:136)
at oracle.tip.esb.server.service.EsbRouterSubscription.onBusinessEvent(EsbRouterSubscription.java:309)
at oracle.tip.esb.server.dispatch.EventDispatcher.executeSubscription(EventDispatcher.java:138)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscription(InitialEventDispatcher.java:545)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscriptions(InitialEventDispatcher.java:527)
at oracle.tip.esb.server.dispatch.EventDispatcher.dispatchRoutingService(EventDispatcher.java:94)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(InitialEventDispatcher.java:160)
at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1988)
at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1467)
at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(EventUtils.java:205)
at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(EventUtils.java:136)
at oracle.tip.esb.server.service.EsbRouterSubscription.onBusinessEvent(EsbRouterSubscription.java:309)
at oracle.tip.esb.server.dispatch.EventDispatcher.executeSubscription(EventDispatcher.java:138)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscription(InitialEventDispatcher.java:545)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscriptions(InitialEventDispatcher.java:527)
at oracle.tip.esb.server.dispatch.EventDispatcher.dispatchRoutingService(EventDispatcher.java:94)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(InitialEventDispatcher.java:160)
at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1988)
at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1467)
at oracle.tip.esb.server.service.impl.soap.EventOracleSoapProvider.raiseEvent(EventOracleSoapProvider.java:399)
at oracle.tip.esb.server.service.impl.soap.EventOracleSoapProvider.processMessage(EventOracleSoapProvider.java:225)
at oracle.j2ee.ws.server.provider.ProviderProcessor.doEndpointProcessing(ProviderProcessor.java:956)
at oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation(WebServiceProcessor.java:349)
at oracle.j2ee.ws.server.provider.ProviderProcessor.doRequestProcessing(ProviderProcessor.java:466)
at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:114)
at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:96)
at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:194)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:713)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:313)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:199)
at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
at java.lang.Thread.run(Thread.java:595)
Caused by: dynamic invocation error: oracle.j2ee.ws.saaj.soap.SOAPVersionMismatchException: Mime Header Content-Type: text/xml requires SOAP envelope namespace: http://schemas.xmlsoap.org/soap/envelope/
at oracle.j2ee.ws.client.dii.BasicCall.directInvoke(BasicCall.java:762)
at oracle.j2ee.ws.client.dii.BasicCall.invoke(BasicCall.java:660)
at com.collaxa.cube.ws.wsif.providers.oc4j.jaxrpc.WSIFOperation_JaxRpc.invokeOperation(WSIFOperation_JaxRpc.java:1787)
... 60 more
at oracle.tip.esb.server.common.wsif.WSIFInvoker.executeOperation(WSIFInvoker.java:1020)
at oracle.tip.esb.server.common.wsif.WSIFInvoker.nextService(WSIFInvoker.java:810)
at oracle.tip.esb.server.common.wsif.WSIFInvoker.nextService(WSIFInvoker.java:832)
at oracle.tip.esb.server.service.impl.outadapter.OutboundAdapterService.nextService(OutboundAdapterService.java:223)
at oracle.tip.esb.server.service.impl.outadapter.OutboundAdapterService.processBusinessEvent(OutboundAdapterService.java:135)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatchNonRoutingService(InitialEventDispatcher.java:406)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(InitialEventDispatcher.java:164)
at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1988)
at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1467)
at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(EventUtils.java:205)
at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(EventUtils.java:136)
at oracle.tip.esb.server.service.EsbRouterSubscription.onBusinessEvent(EsbRouterSubscription.java:309)
at oracle.tip.esb.server.dispatch.EventDispatcher.executeSubscription(EventDispatcher.java:138)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscription(InitialEventDispatcher.java:545)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscriptions(InitialEventDispatcher.java:527)
at oracle.tip.esb.server.dispatch.EventDispatcher.dispatchRoutingService(EventDispatcher.java:94)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(InitialEventDispatcher.java:160)
at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1988)
at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1467)
at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(EventUtils.java:205)
at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(EventUtils.java:136)
at oracle.tip.esb.server.service.EsbRouterSubscription.onBusinessEvent(EsbRouterSubscription.java:309)
at oracle.tip.esb.server.dispatch.EventDispatcher.executeSubscription(EventDispatcher.java:138)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscription(InitialEventDispatcher.java:545)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscriptions(InitialEventDispatcher.java:527)
at oracle.tip.esb.server.dispatch.EventDispatcher.dispatchRoutingService(EventDispatcher.java:94)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(InitialEventDispatcher.java:160)
at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1988)
at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1467)
at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(EventUtils.java:205)
at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(EventUtils.java:136)
at oracle.tip.esb.server.service.EsbRouterSubscription.onBusinessEvent(EsbRouterSubscription.java:309)
at oracle.tip.esb.server.dispatch.EventDispatcher.executeSubscription(EventDispatcher.java:138)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscription(InitialEventDispatcher.java:545)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscriptions(InitialEventDispatcher.java:527)
at oracle.tip.esb.server.dispatch.EventDispatcher.dispatchRoutingService(EventDispatcher.java:94)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(InitialEventDispatcher.java:160)
at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1988)
at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1467)
at oracle.tip.esb.server.service.impl.soap.EventOracleSoapProvider.raiseEvent(EventOracleSoapProvider.java:399)
at oracle.tip.esb.server.service.impl.soap.EventOracleSoapProvider.processMessage(EventOracleSoapProvider.java:225)
at oracle.j2ee.ws.server.provider.ProviderProcessor.doEndpointProcessing(ProviderProcessor.java:956)
at oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation(WebServiceProcessor.java:349)
at oracle.j2ee.ws.server.provider.ProviderProcessor.doRequestProcessing(ProviderProcessor.java:466)
at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:114)
at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:96)
at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:194)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:713)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:313)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:199)
at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.collaxa.thirdparty.apache.wsif.WSIFException: exception on JaxRpc invoke: ; nested exception is:
dynamic invocation error: oracle.j2ee.ws.saaj.soap.SOAPVersionMismatchException: Mime Header Content-Type: text/xml requires SOAP envelope namespace: http://schemas.xmlsoap.org/soap/envelope/; nested exception is:
dynamic invocation error: oracle.j2ee.ws.saaj.soap.SOAPVersionMismatchException: Mime Header Content-Type: text/xml requires SOAP envelope namespace: http://schemas.xmlsoap.org/soap/envelope/
at com.collaxa.cube.ws.wsif.providers.oc4j.jaxrpc.WSIFOperation_JaxRpc.invokeOperation(WSIFOperation_JaxRpc.java:1804)
at com.collaxa.cube.ws.wsif.providers.oc4j.jaxrpc.WSIFOperation_JaxRpc.invokeRequestResponseOperation(WSIFOperation_JaxRpc.java:1531)
at com.collaxa.cube.ws.wsif.providers.oc4j.jaxrpc.WSIFOperation_JaxRpc.executeRequestResponseOperation(WSIFOperation_JaxRpc.java:1210)
at oracle.tip.esb.server.common.wsif.WSIFInvoker.executeOperation(WSIFInvoker.java:907)
... 57 more
Caused by: dynamic invocation error: oracle.j2ee.ws.saaj.soap.SOAPVersionMismatchException: Mime Header Content-Type: text/xml requires SOAP envelope namespace: http://schemas.xmlsoap.org/soap/envelope/
at oracle.j2ee.ws.client.dii.BasicCall.directInvoke(BasicCall.java:762)
at oracle.j2ee.ws.client.dii.BasicCall.invoke(BasicCall.java:660)
at com.collaxa.cube.ws.wsif.providers.oc4j.jaxrpc.WSIFOperation_JaxRpc.invokeOperation(WSIFOperation_JaxRpc.java:1787)
... 60 more
".Indeed that fixes the problem... weird that this actually solved the issue.
In the documentation the only information I found was the following:
"Is Node Key Key: Select if the XPath node is a key value to be used in matching arriving test requests with the simulator."
But that's about it.
Anyone any idea why this is necessary/mandatory?
rgds,
Kevin -
END point URL for ESB Routing service says NOT FOUND
Hi All,
For the routing services in ESB, The link of WSDL is opening up fine, but the link of endpoint URI for the routing service is failing with the message below message. When i invoke the WSDL using SOAP UI, i get back the the same error message. I tried bouncing the server , but of no help. I also notice that slide directory ESB_Projects gives 404 error on any browser.
So when i click below url for any of the routing service
http://<hostname>:<port>/event/<systemName>/<serviceGroupName>/AddressStandardizeRS
I get below error in browser-
Not Found
The requested URL /event/<System Name>/<Service Group Name>/<Routing Service Name> was not found on this server.
Oracle-Application-Server-10g/10.1.3.1.0 Oracle-HTTP-Server Server at odevsoa.local1.wbcgp.com Port 7777Check if the port of ESB in your server is open.
I think that the port is: 7777
try from ESB server:
wget WSDLURI
if you got the file then the port is closed. -
Is it possible to create an inbound SOAP Adaptor for an ESB routing service
I have been given a pre-defined wsdl file that defines the inputs to an ESB service and I wa wondering whether it is possible to create an inbound SOAP adaptor or whether this is actually an outbound adaptor. I am new to SOAP adaptors so need a little bit of guidance.
Hopefully someone can help.Hi,
In your case you need to create an Routing Service. If you create an esb project you can select Routing Service from the ESB Services entry in the Component Palette. You then get the option Select Existing WSDL. The SOAP adapter is only used for outbound SOAP messages. If you define a routing service it is available as a 'webservice' with a wsdl (in this case the one you define) from the console.
Kind Regards,
Andre Jochems -
Exception in creating XSLT transform for ESB Routing Service
Hi,
I am trying to create a Routing service in an ESB project. When I try to create the XSLT in a routing rule I get this error "Error while reading wsdl file esb:///ESB_projects/...../ship.wsdl ... Failed to read WSDL file at location esb:///ESB_projects/...../ship.wsdl . java.net.Socket Exception.
I am able to create and register other adapter/soap services on the ESB server but not able to create this transform.Could anybody guide me as to how to resolve this?
Regards,
SriThe file doesn't physically exist on the server. If you explore the subfolders of the %OH%\integration\esb\oraesb folder, you'll see how ESB projects are deployed.
-
Invoking an ESB Routing Service
Hi,
I have a routing service that i have installed on an Oracle ESB Server. When i test the web service from Oracle Application Server (by searching for the routing service port from the Oracle Apps Server itself) - its sucessful.
The problem i have is that the Routing service needs to be invoked from an external application they are encountering an error - a SOAP Exception: faultCode=HTTP Response Code -405.
I tried invoking the routing service from Soap UI and i get an error - with the response fault being env:ESBMessageProcessingFailed.
In both the last two cases, I dont see an instance being created for that request in the ESB control.
Any ideas in resolving this is highly appreciated.
Thanks.Hi,
I had the similar issue, the problem I found is that whenever there is a key workd 'event' in the target URL then the system will look for the target on the same system source system you invoke the service instead of looking for the remote system where the ESB is lying.
I also guess this happens when there are two targeted systems in your ESB.
For this edit your WSDL file and remove the do remove the one target alias name. and keep only only. Hope this will help you.
--Khaleel -
ESB Routing service based upon XSD contains reference to localhost
Hello,
I've created the following simple ESB scenario and run into some behaviour which I can't explain.
- Create a ESB project
- Import a XSD definition file
- Create a routing service based upon the XSD definition file (Generate WSDL From schemas)
- Deploy the ESB project to the ESB server (on a different machine)
So far, so good
Go to the ESB Console, click on the created Routing Service, go to the Definition tab and click on the Concrete WSDL URL.
In the service part a 'localhost' reference appears, which results in an error when running the routing service.
<service name="execute_pptService">
<port name="__esb_RoutingTest_execute_ppt" binding="tns:__esb_RoutingTest_execute_ppt" />
<port name="__soap_RoutingTest_execute_ppt" binding="tns:__soap_RoutingTest_execute_ppt">
<soap:address xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
location="http://localhost:8888/event/TEST/RoutingTest" />
</port>
</service>
This definition appears in the ..routing..esbsvc file. When I change in this file 'localhost' to the server IP address and redeploy the ESB project, the server IP address is replaced to 'localhost' by JDeveloper.
What causes this behaviour and how can I avoid it?
Regards LeonI enabled "validate payload at runtime" option in the definition.
The instance erred out and I got the below payload in the Error tab.
<actionData xmlns="http://xmlns.oracle.com/bpel/sensor">
<header>
<sensor sensorName="ActivitySensor_1" classname="oracle.tip.pc.services.reports.dca.agents.BpelActivitySensorAgent" kind="activity" target="Assign_1" xmlns:pc="http://xmlns.oracle.com/bpel/sensor" xmlns:tns="http://xmlns.oracle.com/BPELProcess1">
<activityConfig evalTime="completion">
<variable outputDataType="StatusInformation" outputNamespace="http://www.oracle.com/bpel_esb" target="$jmsInput"/>
</activityConfig>
</sensor>
<instanceId>30014</instanceId>
<processName>BPELProcess1</processName>
<processRevision>1.0</processRevision>
<domain>default</domain>
<timestamp>2007-11-01T16:27:20.966+05:30</timestamp>
<midTierInstance>PC-SRGNANAS-IN:8888</midTierInstance>
</header>
<payload>
<activityData>
<activityType>assign</activityType>
<evalPoint>completion</evalPoint>
</activityData>
<variableData>
<dataType>2005</dataType>
<data>
<StatusInformation xmlns="http://www.oracle.com/bpel_esb">
<processName>BPELProcess1</processName>
<timeStamp>2007-11-01T16:27:20</timeStamp>
</StatusInformation>
</data>
<queryName/>
<target>$jmsInput</target>
<updaterName>Assign_1</updaterName>
<updaterType>assign</updaterType>
</variableData>
</payload>
</actionData>
Thanks again for the response. -
ESB Routing service - Filter Expression
Hi,
I am trying to use content based routing in my ESB flow.
I use a JMS adapter to consume a message defined by simple schema as follows
<?xml version="1.0" encoding="windows-1252" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.oracle.com/bpel_esb"
targetNamespace="http://www.oracle.com/bpel_esb"
elementFormDefault="qualified">
<xsd:element name="StatusInformation">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="processName" type="xsd:string"/>
<xsd:element name="timeStamp" type="xsd:dateTime"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
My routing criteria is based on element /StatusInformation/processName
I used the following expression in the Filter section
/ns0:StatusInformation/ns0:processName = 'BPELProcess1'
Which isn't actually passing through.
I need to know of some inputs on building such common expressions and also on tracking messages in ESB.
Thanks a lot
Srini.I enabled "validate payload at runtime" option in the definition.
The instance erred out and I got the below payload in the Error tab.
<actionData xmlns="http://xmlns.oracle.com/bpel/sensor">
<header>
<sensor sensorName="ActivitySensor_1" classname="oracle.tip.pc.services.reports.dca.agents.BpelActivitySensorAgent" kind="activity" target="Assign_1" xmlns:pc="http://xmlns.oracle.com/bpel/sensor" xmlns:tns="http://xmlns.oracle.com/BPELProcess1">
<activityConfig evalTime="completion">
<variable outputDataType="StatusInformation" outputNamespace="http://www.oracle.com/bpel_esb" target="$jmsInput"/>
</activityConfig>
</sensor>
<instanceId>30014</instanceId>
<processName>BPELProcess1</processName>
<processRevision>1.0</processRevision>
<domain>default</domain>
<timestamp>2007-11-01T16:27:20.966+05:30</timestamp>
<midTierInstance>PC-SRGNANAS-IN:8888</midTierInstance>
</header>
<payload>
<activityData>
<activityType>assign</activityType>
<evalPoint>completion</evalPoint>
</activityData>
<variableData>
<dataType>2005</dataType>
<data>
<StatusInformation xmlns="http://www.oracle.com/bpel_esb">
<processName>BPELProcess1</processName>
<timeStamp>2007-11-01T16:27:20</timeStamp>
</StatusInformation>
</data>
<queryName/>
<target>$jmsInput</target>
<updaterName>Assign_1</updaterName>
<updaterType>assign</updaterType>
</variableData>
</payload>
</actionData>
Thanks again for the response. -
ESB: Is it possible to create custom WSDL for routing service?
Hello all!
I have an unchangeable requirement in my project - ESB routing services must confom to WSDL specifications that are already used before we started this integration project.
For example, we have to implement not only the same logical part of WSDL description:
<message name="AuthorisationRequestSoapIn">
<part name="AuthorisationRequest" element="tns:AuthorisationRequest"/>
</message>
<message name="AuthorisationRequestResponseSoapOut">
<part name="AuthorisationRequestResponse" element="tns:AuthorisationRequestResponse"/>
</message>
<portType name="OnlineServicesSoap">
<operation name="AuthorisationRequest">
<input message="tns:AuthorisationRequestSoapIn"/>
<output message="tns:AuthorisationRequestResponseSoapOut"/>
</operation>
</portType>
but the binding and service sections must conform to WSDL document too:
<binding name="OnlineServicesSoapBinding" type="tns:OnlineServicesSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="AuthorisationRequest">
<soap:operation style="document" soapAction="AuthorisationRequest"/>
<input>
<soap:body use="literal" namespace="http://..../OnlineServices"/>
</input>
<output>
<soap:body use="literal" namespace="http://..../OnlineServices"/>
</output>
</operation>
</binding>
<service name="OnlineServicesSoapService">
<port name="OnlineServicesSoapPort" binding="tns:OnlineServicesSoapBinding">
<soap:address location="....."/>
</port>
</service>
And after registration of ESB routing service I've got the following service description (I ommit esb bindings and logical part here, it's ok with messages and portTypes):
<binding name="__soap_OnlineServicesSoapService_OnlineServicesSoap" type="import:OnlineServicesSoap">
<soap:binding xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="AuthorisationRequest">
<soap:operation xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" style="document" soapAction="AuthorisationRequest"/>
<input>
<soap:body xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
</input>
<output>
<soap:body xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
</output>
</operation>
</binding>
<service name="ESB_OnlineServicesSoapService_Service">
<port name="__soap_OnlineServicesSoapService_OnlineServicesSoap" binding="tns:__soap_OnlineServicesSoapService_OnlineServicesSoap">
<soap:address xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" location="http://..../event/DefaultSystem/OnlineServicesSoapService"/>
</port>
</service>
How can I change WSDL that is generated for routing services? Is it possible to change the names of port and binding element?
Thanks in advance,
Oleg OleninSo, no docs, no answers, no life :) - I have only one way to get the answers:
oracle.tip.esb.configuration.util.WSDLGenerator.addSOAPBindings():
binding.setQName(new QName(targetNamespace, WSDLConstants.generateSOAPPortName(service.getName(),portType.getQName().getLocalPart())));
oracle.tip.esb.configuration.util.WSDLConstants:
public static final String generateSOAPPortName(String service, String operation)
return "__soap_" + service + "_" + operation;
So it is not possible to change the names of SOAP binding and port.
And I guess there is no way to change WSDL that is generated for routing services. -
ESB Soap Service invoking mutiple operations of a WSDL
Hi,
we have a requirement where in we have to call mutiple opeartions of a WSDL.
We tried developing this using ESB, where in we used many soap services invoking different operations of thw WSDL and a routing service which will decide on which SOAP service (Opeartion of WSDL) to invoke.
But we just want to check if there any way that we can call many operations of the same WSDL using the same soap service.
Any pointers on this.
Thanks in advance.
santuYour usecase should be no problem. The error java.util.NoSuchElementException seems to indicate you are refering a non existing element somewhere. Are you sure the service gets invoked with the correct message content? From the enterprise manager website you can increase the logging of esb. Go to your esb oc4j container, administration, Logger Configuration. Search for soap loggers and increase the log level. You should now see the entire xml soap messages in the log.xml file.
Kind Regards,
Andre Jochems -
Mapping Routing service with a database adapter in ESB
Hi,
I have a database adapter configured for a Stored procedure that takes in a XML_TYPE and returns a CLOB. I also have the Schema for request and response, which I have configured in a Routing Service. Now how do I map the Routing Service to the Database adapter.
The problem I am facing is 'CLOB' is returned as a simple type which can't be mapped to a complex type schema of the Routing Service.
Also the 'any' tag of the XML_TYPE is not supported by jdeveloper.
Any suggestions plz....
Thanks..Adapters may have been tesed under load but messages are kept small. Of you adapter keep your messages as small as possible. Try and keep messages under 1MB, if possible.
If you know Apps will I would stick to using the DB adapter for calling APIs, and Apps adapter for the more complex integrations, e.g. business events, xml gateway. I use DB adapter for concurrent programs, but the apps adapter is good for these integrations as well.
The reason I used the DB adapter for APIs is because the PL/SQL stub the adapter creates forces you to uses all fields in the APIs. In some case you may only need a handfull out of 100. You get issues when you don't provide values.
If you are in evaluation stage of products I would recommend Oracle Data Integrator for eBusiness Suite integration if you are implementing batch type interfaces. This is because of the inbuild error handling. It manages batch messages much better. Whereas SOA Suite is designed for single messages so it manges small messages well.
The best option Oracle offers is Oracle Data Integration Suite, which includes ESB and BPEL.
cheers
James
Maybe you are looking for
-
How to install os x in new HDD
Hello.I am from India and have bought my macbook pro around 1 and a half year ago.Now my hard disk crashed and bought a new one.So how would i install os x on it without disk.As old HDD is not working and i have downloaded os x from mac app store..Pl
-
How to Transfer IDoc Type to Data Type in XI
Dear All, I am working on scenario to transfer data(IDoc) from SAP System to Non SAP system through XI. While Defining "Data Type" in XI i want to create Data Type as of IDoc type(CREMAS05).There is any direct method to import IDoc type into "Data Ty
-
Need to upgrage Ram to HP laptop HP G62-361TX
Hi Friends, i need to upgrade Ram in HP Laptop Model:G62-361TX - I am 4 GB Ram ( 4GB 1RX8 - PC3L-12800S-11-12-84) it possible to upgrade in laptop
-
I need to find out if my macbook has been infected, as told to me by H/P!
-
How to set the default action of slide switch to auto-rotate
Is there a way to set the default action of the slide switch to auto-rotate during the OS loading instead of volume setting?