This discussion is archived
4 Replies Latest reply: Nov 15, 2012 3:32 PM by vladodias RSS

Call To WSIF From SOA 11g

vv*338251*hu Newbie
Currently Being Moderated
Hi All,

Does SOA 11g supports WSIF call From Partnerlink?.

Regards
Venkata Madhu
  • 1. Re: Call To WSIF From SOA 11g
    vladodias Guru
    Currently Being Moderated
    Hi,

    This may help...
    http://docs.oracle.com/cd/E23943_01/upgrade.1111/e10127/upgrade_bpel_apps.htm#FUPSS1786

    Cheers,
    Vlad
  • 2. Re: Call To WSIF From SOA 11g
    vv*338251*hu Newbie
    Currently Being Moderated
    Thanks Vlad,

    I was trying to do WSIF call from SOA 11.1.1.6, it is simple operation of adding two integers. But while deploying it is not getting deployed, below is the error.

    *_<h1>Deployment Error</h1>_*
    oracle.fabric.common.FabricDeploymentException: [WSIFBinding] SampleWSIFSOAProj.Service Unable to complete load due to: String index out of range: -1: Stri
    ng index out of range: -1 {rootCauses=[]}
    at oracle.integration.platform.blocks.wsif.WsifReference.load(WsifReference.java:354)
    at oracle.integration.platform.blocks.wsif.WsifReference.load(WsifReference.java:98)
    at oracle.integration.platform.blocks.deploy.CompositeDeploymentConnection.deployReferences(CompositeDeploymentConnection.java:201)
    at oracle.integration.platform.blocks.deploy.CompositeDeploymentConnection.deploy(CompositeDeploymentConnection.java:93)
    at oracle.integration.platform.blocks.deploy.CompositeDeploymentManagerImpl.initDeployment(CompositeDeploymentManagerImpl.java:150)
    at oracle.integration.platform.blocks.deploy.CompositeDeploymentManagerImpl.load(CompositeDeploymentManagerImpl.java:63)
    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 org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
    at oracle.integration.platform.blocks.deploy.DeploymentEventPublisher.invoke(DeploymentEventPublisher.java:77)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    at $Proxy318.load(Unknown Source)
    at oracle.integration.platform.blocks.deploy.StandaloneCompositeDeploymentCoordinatorImpl.coordinateCompositeRedeploy(StandaloneCompositeDeployment
    CoordinatorImpl.java:97)
    at oracle.integration.platform.blocks.deploy.servlet.BaseDeployProcessor.overwriteExistingComposite(BaseDeployProcessor.java:435)
    at oracle.integration.platform.blocks.deploy.servlet.BaseDeployProcessor.deploySARs(BaseDeployProcessor.java:253)
    at oracle.integration.platform.blocks.deploy.servlet.DeployProcessor.doDeployWork(DeployProcessor.java:167)
    at oracle.integration.platform.blocks.deploy.servlet.DeployProcessor.doDeployWork(DeployProcessor.java:112)
    at oracle.integration.platform.blocks.deploy.servlet.DeployProcessor.doDeploy(DeployProcessor.java:99)
    at oracle.integration.platform.blocks.deploy.servlet.DeployProcessor.process(DeployProcessor.java:81)
    at oracle.integration.platform.blocks.deploy.servlet.CompositeDeployerServlet.doPostInsideLoggingSession(CompositeDeployerServlet.java:219)

    Any idea, what could be the reason for this.

    Note: When i try concatenating two string using WSIF, it works.

    Any clue, why it so

    Regards
    Venkata Madhu
  • 3. Re: Call To WSIF From SOA 11g
    vv*338251*hu Newbie
    Currently Being Moderated
    Finally could able to resolve the issue. Want to update this post with the reason for, to help people if encounter the similar issue.

    There are two issues before making it to deploy and have successful call.

    One:+*  Java method is having one input argument and return type, both are of custom types, and in the WSIF wsdl we had inline schema as element which basically represents those custom types.
    In the binding portion of WSIF wsdl, the values for parameterOrder and returnPart are supposed to be the respective part names as shown in below code sample

    <message name="sumInputMsg">
    <part name="*in*" element="ns1:inputNum"/>
    </message>
    <message name="sumOutputMsg">
    <part name="*out*" element="ns1:outputNum"/>
    </message>

    <operation name="sum">
    <java:operation methodName="sum" methodType="instance" parameterOrder="*in*" returnPart="*out*"/>
    <input />
    <output />
    </operation>

    But when we generate the WSIF wsdl, the JDeveloper provides type/element names instead, as shown below, which is not working

    <operation name="sum">
    <java:operation methodName="sum" methodType="instance" parameterOrder="*inputNum*" returnPart="*outputNum*"/>
    <input />
    <output />
    </operation>


    Two:+* This issue took most of the time in resolving. The namespace we had provided for the schema elements (Which basically part of WSIF method signature) was like this urn:MySumWSIF, where in the package structure of the respective java classes are as com.hcl.tmob.training. When we change all the occurencess of urn:MySumWSIF with http://training.tmob.hcl.com across the project, then it got deployed and working as expected.

    Here, would like to know, is this a standard to have java package name as namespace for the respective XML types or was it looking for *. (dot)* in the namespace. Is this a programming bug in JDeveloper/SOA for SOA deployment validation.

    Happy to hear update on this.

    Thanks
    Venkata Madhu
  • 4. Re: Call To WSIF From SOA 11g
    vladodias Guru
    Currently Being Moderated
    vv**** wrote:
    Here, would like to know, is this a standard to have java package name as namespace for the respective XML types
    I believe this is a default behaviour, that can be changed by using annotations...

    http://docs.oracle.com/javaee/5/api/javax/xml/bind/annotation/XmlSchema.html
    http://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/1.5/tutorial/doc/JAXBUsing4.html

    Cheers,
    Vlad

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points