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);

Reply via email to