You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wsif-user@ws.apache.org by Oliver Schneider <ol...@orkelsfelsen.de> on 2009/12/14 12:44:09 UTC
Problem with WSIF service invcation
Hello everybody,
I need some urgent help concerning the following problem:
I wrote a custom Web service using WSIF which I would like to invokefrom my BPEL process, pass along as input a string and want to returnas output a complex type message.
I try to set the content of the complex type from within the Java class that is called by the WSIF interface operation.
My WSDL looks as follows:
<?xml version="1.0" encoding="utf-8" ?>
<wsdl:definitions xmlns:pub="http://xmlns.oracle.com/Application2/podl_soa/podl_soa_bpel/publication"
targetNamespace="http://xmlns.oracle.com/Application2/podl_soa/podl_soa_bpel/publication"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:format="http://schemas.xmlsoap.org/wsdl/formatbinding/"
xmlns:main="http://xmlns.oracle.com/Application2/podl_soa/podl_soa_bpel"
xmlns:java="http://schemas.xmlsoap.org/wsdl/java/"
xmlns:ncc="http://publications.europe.eu/ncc"
xmlns:arch="http://publications.europe.eu/archive"
xmlns:par="http://publications.europe.eu/parameters"
xmlns:ext="http://publications.europe.eu/external">
<!--wsdl:import namespace="http://xmlns.oracle.com/Application2/podl_soa/podl_soa_bpel"
location="../../../podl_soa_bpel.wsdl"/-->
<wsdl:types>
<xs:schema>
<xs:import schemaLocation="../../../xsd/ncc_rules.xsd"
namespace="http://publications.europe.eu/ncc"/>
<xs:import schemaLocation="../../../xsd/archive_rules.xsd"
namespace="http://publications.europe.eu/archive"/>
<xs:import schemaLocation="../../../xsd/parameters.xsd"
namespace="http://publications.europe.eu/parameters"/>
<xs:import schemaLocation="../../../xsd/external.xsd"
namespace="http://publications.europe.eu/external"/>
<xs:complexType name="PublicationRules">
<xs:sequence>
<xs:element name="ncc" type="ncc:RuleSet" maxOccurs="1"/>
<!--xs:element name="archive" type="arch:ArchiveSet" maxOccurs="1"/-->
</xs:sequence>
</xs:complexType>
</xs:schema>
</wsdl:types>
<wsdl:message name="service_request">
<wsdl:part name="catnum" type="xs:string"/>
</wsdl:message>
<wsdl:message name="service_response">
<wsdl:part name="publicationRules" type="PublicationRules"/>
</wsdl:message>
<wsdl:portType name="publication_PT">
<wsdl:operation name="initialize">
<wsdl:input message="pub:service_request"/>
<wsdl:output name="getPublicationRulesOutput" message="pub:service_response"/>
</wsdl:operation>
</wsdl:portType>
<!-- Java binding -->
<wsdl:binding name="JavaBinding" type="pub:publication_PT">
<java:binding/>
<format:typeMapping encoding="Java" style="Java">
<format:typeMap typeName="xs:string" formatType="java.lang.String"/>
<format:typeMap typeName="pub:PublicationRules"formatType="com.oracle.xmlns.Application2.podl_soa.podl_soa_bpel.publication.PublicationRules"/>
<format:typeMap typeName="ncc:RuleSet" formatType="eu.europe.publications.ncc.RuleSet" />
<format:typeMap typeName="ncc:NccRule" formatType="eu.europe.publications.ncc.NccRule" />
</format:typeMapping>
<wsdl:operation name="initialize">
<java:operation methodName="getPublicationRules" returnPart="publicationRules"/>
<wsdl:input/>
<wsdl:output name="getPublicationRulesOutput"/>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="PUBLICATION">
<wsdl:port name="JavaPort" binding="pub:JavaBinding">
<java:address className="PublicationRulesProvider"/>
</wsdl:port>
</wsdl:service>
<!-- Partner link type -->
<plnk:partnerLinkType name="publication_LT">
<plnk:role name="PublicationService">
<plnk:portType name="pub:publication_PT"/>
</plnk:role>
</plnk:partnerLinkType>
</wsdl:definitions>
Within the PublicationRulesProvides I set the content of the return type PublicationRules and return it in the end.
Unfortunately when I deploy everything to the SOA server and run the test, I always receive the following exception:
<remoteFault> <part name="summary"> <summary>oracle.fabric.common.FabricException: Error while determining return class of method getPublicationRules : The meta information is not consistent.; nested exception is: oracle.integration.thirdparty.apache.wsif.WSIFException: publicationRules</summary> </part> <part name="detail"> <detail>Error while determining return class of method getPublicationRules : The meta information is not consistent.; nested exception is: oracle.integration.thirdparty.apache.wsif.WSIFException: publicationRules</detail> </part> </remoteFault>
What is strange is that if within the PublicationRulesProvider I onlyinstantiate the return type and immediately return it without settingit, then I arrive at the next step of my workflow.
Does anyone have an idea what I did wrong?
I would greatly appreciate any help to solve this issue!
Kind regards!
/*var h = frames.top.main_mail.winLoad();alert(h);