Oracle Service Bus 11g communication with Oracle SOA Suite 11g, DirectBindings, part1

In a few short blogs i will describe how to develop the following process flows

  • Communicate from Oracle Service Bus 11g to Oracle SOA Suite Composite, Synchronous
  • Communicate from Oracle Service Bus 11g to Oracle SOA Suite Composite, ASynchronous
  • Communicate from Oracle SOA Suite Composite to Oracle Service Bus 11g, Synchronous
  • Communicate from Oracle SOA Suite Composite to Oracle Service Bus 11g, ASynchronous

Sync call from Oracle SOA Suite Composite to Oracle Service Bus 11g

We will develop the next process flow

Oracle Service Bus

For the development of the Oracle Service Bus process we need a few components

  • Proxy Service
  • Business Service
  • External Service (the service we eventually route to)

External Service

For this i created a simple HelloWorld Webservice which will only returns the “Hello …” string.

package nl.iteye.service.hello;

import javax.jws.*;

@WebService
public class MyHelloService {

	@WebMethod
	public String hello(String name) {
		return "Hello " + name;
	}
}

Deploy the service and test it to see if if the invocation works.

Oracle Servicebus components

Create a new OSB Configuration Project in Oracle Enterprise Pack for Eclipse.
Creata a new OSB Project.
Create a new Busines Service in this project and use the next settings.

Use the wsdl of the deployed MyHelloService. Easiest way to find this url is to go to the Console > Deployments > MyHelloServiceEAR > Testing > MyHelloServiceService > ?WSDL
Basicually we can use the default settings after browsing to the correct wsdl.

Create a new Proxy Service based on this Business Service

By default it will create a Proxy Service with HTTP Transport, change this to SB Transport. This will be used eventually when we invoke the service from our Composite Application.

We will have the next list of resources

  • proxy service
  • business service
  • imported helloworld wsdl
  • imported helloworld xsd

We’re ready with the Oracle Service part. Deploy the project.

Oracle SOA Suite Composite Application

In JDeveloper create a new SOA Application with an empty SOA Project in it.
Eventually we will be creating the next flow

First we need the effective wsdl of our Proxy Service. This we will be using for the Direct Binding reference from our composite to the Oracle Service Bus resource.
From Eclipse :

From OSB Console :

In the wsdl we’ll see the Binding- and the Service-parts. In the Service location we will see the sb:// endpoint of the Proxy Service.

  <WL5G3N0:service name="MyHelloServiceService">
    <WL5G3N0:port binding="WL5G3N1:MyHelloServicePortBinding" name="MyHelloServicePort">
      <WL5G3N2:address location="sb://localhost:7001/hello_ps"/>
    </WL5G3N0:port>
  </WL5G3N0:service>

Direct Binding

Drag the Direct Binding Service Adapter on the swim lane

In this case we are invoking an osb resource, so we will be using ‘Reference’ as Type and ‘Oracle Service Bus’ as Reference Target.
For the WSDL URL browse to the location at which your exported and unpacked the Effect WSDL. Let the wizard copy the resource into the project and don’t maintain the original directory structure.

Mediator

Drag the Mediator component to the middle swim lane.
For the mediator interface i will use the same wsdl, to keep it simple.

Drag the left arrow of the mediator the to the left swim lane. Now we will have a soap endpoint to test against.
Drag the right arrow to the Direct Binding Service we created in the first step. Doubleclick the mediator to add the transformations.

The process should be done by now. Deploy the SOA Composite.
Go to the Enterprise Manager Console and test the application.

Click “Launch Message Flow Trace” to see what got executed.

In here we will see the Hello_PS_Direct of type ‘Direct Binding’ got executed.

To see if the invoke really triggered my OSB Resources i added tracing to the Proxy Service.

 [OSB Tracing] Routing to SOADirectBinding/hello_bs with message context:
$body = <soap-env:Body xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
  <tns:hello xmlns:tns="http://hello.service.iteye.nl/">
    <arg0>Eric</arg0>
  </tns:hello>
</soap-env:Body>
 [OSB Tracing] The following variables are changed:
 $body = <S:Body xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <ns2:helloResponse xmlns:ns2="http://hello.service.iteye.nl/">
    <return>Hello Eric</return>
  </ns2:helloResponse>
</S:Body>

The steps we need to communicate sync from the Composite Application with the Oracle Service Bus :
Create a proxy service with sb-transport in the Oracle Service Bus, use the effective wsdl from this service to create a reference service with the Direct Binding adapter and you’re ready to go.
The other steps needed are just the usual steps to create and implement the Composite Application and the resources in the Oracle Service Bus.

Share this Post:
Digg Google Bookmarks reddit Mixx StumbleUpon Technorati Yahoo! Buzz DesignFloat Delicious BlinkList Furl

13 Responses to “Oracle Service Bus 11g communication with Oracle SOA Suite 11g, DirectBindings, part1”

commenter

Hi,

Can you please tell me how to configure the proxy in soa 11g as i know how to configure proxy in soa10g.

commenter

Easiest way is to create the business service based on the wsdl of your webservice. After this you can use the option in Eclipse (rightmouseclick on the business service > Oracle Service Bus > Created Proxy Service based on Business Service). This will create the proxy service for you and after this you only need to change the transport to sb instead of http.

commenter

Hi Eric

I tried as u have said in this blog, but i am not able to invoke my OSB from my SOA. i get error
“java.lang.Exception: oracle.sysman.emSDK.webservices.wsdlapi.SoapTestException: oracle.fabric.common.FabricInvocationException: oracle.soa.api.invocation.InvocationException: com.bea.wli.sb.transports.client.SBConnectionException: Could not create connection, verify that protocol is supported or enabled, provider uri and credentials are correct. at oracle.sysman.emas.model.wsmgt.WSTestModel.invokeOperation(WSTestModel.java:575) at oracle.sysman.emas.view.wsmgt.WSView.invokeOperation(WSView.java:381) at oracle.sysman.emas.view.wsmgt.WSView.invokeOperation(WSView.java:298) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.el.parser.AstValue.invoke(AstValue.java:157) at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283) at org.apache.myfaces.trinidadinternal.taglib.util.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:53) at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodBinding(UIXComponentBase.java:1259) at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:183) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:90) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:309) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:94) at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:97) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:90) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:309) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:94) at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:91) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:698) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:285) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:177) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:97) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420) at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157) at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.help.web.rich.OHWFilter.doFilter(Unknown Source) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.emSDK.license.LicenseFilter.doFilter(LicenseFilter.java:101) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:191) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.emas.fwk.MASConnectionFilter.doFilter(MASConnectionFilter.java:41) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:159) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.eml.app.AuditServletFilter.doFilter(AuditServletFilter.java:179) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.eml.app.EMRepLoginFilter.doFilter(EMRepLoginFilter.java:203) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.core.app.perf.PerfFilter.doFilter(PerfFilter.java:141) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.eml.app.ContextInitFilter.doFilter(ContextInitFilter.java:542) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:330) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.doIt(WebAppServletContext.java:3684) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3650) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2268) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2174) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1446) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201) at weblogic.work.ExecuteThread.run(ExecuteThread.java:173) Caused by: oracle.sysman.emSDK.webservices.wsdlapi.SoapTestException: oracle.fabric.common.FabricInvocationException: oracle.soa.api.invocation.InvocationException: com.bea.wli.sb.transports.client.SBConnectionException: Could not create connection, verify that protocol is supported or enabled, provider uri and credentials are correct. at oracle.sysman.emSDK.webservices.wsdlapi.dispatch.DispatchUtil.invoke(DispatchUtil.java:260) at oracle.sysman.emSDK.webservices.wsdlparser.OperationInfoImpl.invokeWithDispatch(OperationInfoImpl.java:985) at oracle.sysman.emas.model.wsmgt.PortName.invokeOperation(PortName.java:729) at oracle.sysman.emas.model.wsmgt.WSTestModel.invokeOperation(WSTestModel.java:569) … 69 more Caused by: javax.xml.ws.soap.SOAPFaultException: oracle.fabric.common.FabricInvocationException: oracle.soa.api.invocation.InvocationException: com.bea.wli.sb.transports.client.SBConnectionException: Could not create connection, verify that protocol is supported or enabled, provider uri and credentials are correct. at oracle.j2ee.ws.client.jaxws.DispatchImpl.throwJAXWSSoapFaultException(DispatchImpl.java:955) at oracle.j2ee.ws.client.jaxws.DispatchImpl.invoke(DispatchImpl.java:750) at oracle.j2ee.ws.client.jaxws.OracleDispatchImpl.synchronousInvocationWithRetry(OracleDispatchImpl.java:234) at oracle.j2ee.ws.client.jaxws.OracleDispatchImpl.invoke(OracleDispatchImpl.java:105) at oracle.sysman.emSDK.webservices.wsdlapi.dispatch.DispatchUtil.invoke(DispatchUtil.java:256) … 72 more ”

I replicated as u have said in the blog. my proxy service ,external service and business services works fine , i have tested.

Can you please provide ur help in this

Thanks
Abhishek

commenter

HI Eric,
I tried the steps mentioned here but getting the error below:
I am trying to call OSB10gr3 PS from SOA SUITE 11g. Jdev version 11.1.1.5.0

oracle.sysman.emSDK.webservices.wsdlapi.SoapTestException: oracle.fabric.common.FabricInvocationException: oracle.soa.api.invocation.InvocationException: com.bea.wli.sb.transports.client.SBConnectionException: Could not create connection, verify that protocol is supported or enabled, provider uri and credentials are correct.

java.lang.Exception: oracle.sysman.emSDK.webservices.wsdlapi.SoapTestException: oracle.fabric.common.FabricInvocationException: oracle.soa.api.invocation.InvocationException: com.bea.wli.sb.transports.client.SBConnectionException: Could not create connection, verify that protocol is supported or enabled, provider uri and credentials are correct. at oracle.sysman.emas.model.wsmgt.WSTestModel.invokeOperation(WSTestModel.java:575) at oracle.sysman.emas.view.wsmgt.WSView.invokeOperation(WSView.java:381) at oracle.sysman.emas.view.wsmgt.WSView.invokeOperation(WSView.java:298) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.el.parser.AstValue.invoke(Unknown Source) at com.sun.el.MethodExpressionImpl.invoke(Unknown Source) at org.apache.myfaces.trinidadinternal.taglib.util.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:53) at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodBinding(UIXComponentBase.java:1256) at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:183) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96) at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:102) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96) at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:96) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:788) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:306) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:186) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.help.web.rich.OHWFilter.doFilter(Unknown Source) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.emSDK.license.LicenseFilter.doFilter(LicenseFilter.java:101) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446) at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177) at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.emas.fwk.MASConnectionFilter.doFilter(MASConnectionFilter.java:41) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:175) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.eml.app.AuditServletFilter.doFilter(AuditServletFilter.java:179) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.eml.app.EMRepLoginFilter.doFilter(EMRepLoginFilter.java:203) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.core.model.targetauth.EMLangPrefFilter.doFilter(EMLangPrefFilter.java:158) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.core.app.perf.PerfFilter.doFilter(PerfFilter.java:141) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.eml.app.ContextInitFilter.doFilter(ContextInitFilter.java:542) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111) at java.security.AccessController.doPrivileged(Native Method) at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313) at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413) at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94) at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161) at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209) at weblogic.work.ExecuteThread.run(ExecuteThread.java:178) Caused by: oracle.sysman.emSDK.webservices.wsdlapi.SoapTestException: oracle.fabric.common.FabricInvocationException: oracle.soa.api.invocation.InvocationException: com.bea.wli.sb.transports.client.SBConnectionException: Could not create connection, verify that protocol is supported or enabled, provider uri and credentials are correct. at oracle.sysman.emSDK.webservices.wsdlapi.dispatch.DispatchUtil.invoke(DispatchUtil.java:260) at oracle.sysman.emSDK.webservices.wsdlparser.OperationInfoImpl.invokeWithDispatch(OperationInfoImpl.java:992) at oracle.sysman.emas.model.wsmgt.PortName.invokeOperation(PortName.java:729) at oracle.sysman.emas.model.wsmgt.WSTestModel.invokeOperation(WSTestModel.java:569) … 79 more Caused by: javax.xml.ws.soap.SOAPFaultException: oracle.fabric.common.FabricInvocationException: oracle.soa.api.invocation.InvocationException: com.bea.wli.sb.transports.client.SBConnectionException: Could not create connection, verify that protocol is supported or enabled, provider uri and credentials are correct. at oracle.j2ee.ws.client.jaxws.DispatchImpl.throwJAXWSSoapFaultException(DispatchImpl.java:1024) at oracle.j2ee.ws.client.jaxws.DispatchImpl.invoke(DispatchImpl.java:808) at oracle.j2ee.ws.client.jaxws.OracleDispatchImpl.synchronousInvocationWithRetry(OracleDispatchImpl.java:235) at oracle.j2ee.ws.client.jaxws.OracleDispatchImpl.invoke(OracleDispatchImpl.java:106) at oracle.sysman.emSDK.webservices.wsdlapi.dispatch.DispatchUtil.invoke(DispatchUtil.java:256) … 82 more

commenter

Hello Eric, how are you doing?

You have a great blog with very helpful information. I saw that you are from The Netherlands, do you know Steven Davelaar from JHeadstart? Some years ago I was a JHeadstart heavy user.

We are defining ours Refence Architecture for Oracle OSB / SOA Suite 11g, and using SOA-DIRECT / SB Transport is in our minds.

So, a doubt that came about this subject was: how to propagate OSB authentication and authorization credentials to SOA Suite using SOA-DIRECT?

One thing that I have noticed is that SOA-DIRECT does not supports WS-Security. The other thing is that there is an option called Pass Caller’s Subject in the Business Service Configuration. So, I have tried to use that option and I have needed to enable Weblogic Trust Domain between OSB and SOA Suite domains.

Can you please confirm if we are in the right direction?

Thank you very much,

Eduardo Sano

commenter

Hi Eduardo,

Thanks for the compliments! I know Steven by name, but i never really met him. I don’t really have any handson on your case described, so i can only google a bit on the facts you mentioned.

http://docs.oracle.com/cd/E14571_01/doc.1111/e15866/soa.htm
24.1.2 Security

http://docs.oracle.com/cd/E14571_01/doc.1111/e15866/soa.htm#BABCAHIJ

So it looks like you’re on the right track.

commenter

Hi Eric
Thanks for helpful information.Do you know how to handle errors with direct binding. when my business service or proxy service with sb protocol is down my bpel continuously waits as osb throws rollback fault which cant be caught in bpel.Please let me know if you have any solution or work around.
Thanks
sri

commenter

Never looked into this.
What’s the error you receive in your bpel throw by the osb process?

http://docs.oracle.com/cd/E14571_01/doc.1111/e15866/soa.htm
osb should throw some connection error i assume ?
what’s the result if you add a service/stage error handler and do the reply with failure?

commenter

In Bpel I am getting Rollback fault. I tried service error handler with reply with failure still I get the same error. I made a work around to reply with success and error kept in body. It is working but if OSB is down completely I will not receive any thing from osb and bpel waits forever. I thought of getting rid of direct bindings and use http. Please help me

Thanks
sri

commenter

when we call OSB from SOA using Direct Binding Service adapter and if something goes wrong in OSB we generaly got only one generic below error.

Rollback fault thrown.
The current JTA transaction is aborting due to an user rollback fault being thrown from the BPEL code.
This exception was caused by a bpelx:rollback fault being thrown. The user had directed the BPEL engine to roll back the current JTA transaction.
There is no action recommended

Is there any other way to pass actual error from OSB to SOA ?

Thanks
Vivek Garg

commenter

Eric,

Thanks for the informational post. How can i take advantage of the “USE LOCAL JNDI PROVIDER” in my composite direct partner link. The point here is to remove the hard coded reference to my service bus proxy service.

Any help would be much appreciated.

commenter

Hi Eric,

I have similar situation like Sri with handling error.
I have a BS on OSB which calls bpel process which invoke another PS on OSB. Transport in two way is on local transport (sb). I’m sending bad request and I know that the proxy service is receiving soapFualt but my bpel process doesn’t understand it and I’m getting it:

could not dispatch message because there is no active transaction. there is no active transaction while scheduling a message with the dispatcher. this usually happens if the underlying subsystem rollback back the transaction without bubbling up the system or transaction exception to the bpel layer. Contact Oracle Support Services. Provide the error message and the exception trace in the log files (with logging level set to debug mode).

Any idea how to throw my soapFault via Bpel to OSB?

commenter

An excellent article that explains Direct binding call from OSB to SOA-BPEL, How ever, can you please shed some light on hot to implement direct binding from SOA to SOA?

Leave a Reply:

Name (required):
Mail (will not be published) (required):
Website:
Comment (required):
XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>