[Users] [SE-EIP] Routing based on WSDL operation not working

seb.wytt sebastien.trivella at veoliaeau.fr
Wed Mar 16 10:59:57 CET 2011


Hi,

I'm trying to test the new "routing on WSDL operation" offered by EIP 2.5-SNAPSHOT.
But I can't success to have it working properly.

I'm exposing the following 2-operations WSDL:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://myCpy.ban.com/eau/faisabilite/petals/service/FAIS005/v01" xmlns:socl="http://myCpy.ban.com/eau/SI/Technique/objet/v01" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://myCpy.ban.com/eau/faisabilite/petals/service/FAIS005/v01" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
  <wsdl:types>
    <xsd:schema targetNamespace="http://myCpy.ban.com/eau/faisabilite/petals/service/FAIS005/v01">
      <xsd:import namespace="http://myCpy.ban.com/eau/SI/Technique/objet/v01" schemaLocation="EnvMyCpy_01.xsd"/>
      <xsd:import namespace="http://myCpy.ban.com/eau/SI/Technique/objet/v01" schemaLocation="ErrMyCpy_01.xsd"/>
    </xsd:schema>
  </wsdl:types>
  <wsdl:message name="Operation-2_ResMsg">
    <wsdl:part name="param" type="xsd:string">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="Operation-2_ReqMsg">
    <wsdl:part name="envMyCpy" type="socl:EnvMyCpyType">
    </wsdl:part>
    <wsdl:part name="param" type="xsd:string">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="Operation-1_ReqMsg">
    <wsdl:part name="envMyCpy" type="socl:EnvMyCpyType">
    </wsdl:part>
    <wsdl:part name="param" type="xsd:string">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="ErreurFonctionnelle">
    <wsdl:part name="erreurFonctionnelle" type="socl:ErreurFonctionnelleType">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="ServiceIndisponible">
    <wsdl:part name="serviceIndisponible" type="socl:ServiceIndisponibleType">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="ErreurTechnique">
    <wsdl:part name="erreurTechnique" type="socl:ErreurTechniqueType">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="Operation-1_ResMsg">
    <wsdl:part name="param" type="xsd:string">
    </wsdl:part>
  </wsdl:message>
  <wsdl:portType name="FAIS005-RoutageOperation_Itf">
    <wsdl:operation name="operation-1">
      <wsdl:input message="tns:Operation-1_ReqMsg">
    </wsdl:input>
      <wsdl:output message="tns:Operation-1_ResMsg">
    </wsdl:output>
      <wsdl:fault name="erreurFonctionnelle" message="tns:ErreurFonctionnelle">
    </wsdl:fault>
      <wsdl:fault name="erreurTechnique" message="tns:ErreurTechnique">
    </wsdl:fault>
      <wsdl:fault name="serviceIndisponible" message="tns:ServiceIndisponible">
    </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="operation-2">
      <wsdl:input message="tns:Operation-2_ReqMsg">
    </wsdl:input>
      <wsdl:output message="tns:Operation-2_ResMsg">
    </wsdl:output>
      <wsdl:fault name="erreurFonctionnelle" message="tns:ErreurFonctionnelle">
    </wsdl:fault>
      <wsdl:fault name="erreurTechnique" message="tns:ErreurTechnique">
    </wsdl:fault>
      <wsdl:fault name="serviceIndisponible" message="tns:ServiceIndisponible">
    </wsdl:fault>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="FAIS005-RoutageOperation" type="tns:FAIS005-RoutageOperation_Itf">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="operation-1">
      <soap:operation soapAction="operation-1"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
      <wsdl:fault name="erreurFonctionnelle">
        <soap:fault name="erreurFonctionnelle" use="literal"/>
      </wsdl:fault>
      <wsdl:fault name="erreurTechnique">
        <soap:fault name="erreurTechnique" use="literal"/>
      </wsdl:fault>
      <wsdl:fault name="serviceIndisponible">
        <soap:fault name="serviceIndisponible" use="literal"/>
      </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="operation-2">
      <soap:operation soapAction="operation-2"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
      <wsdl:fault name="erreurFonctionnelle">
        <soap:fault name="erreurFonctionnelle" use="literal"/>
      </wsdl:fault>
      <wsdl:fault name="erreurTechnique">
        <soap:fault name="erreurTechnique" use="literal"/>
      </wsdl:fault>
      <wsdl:fault name="serviceIndisponible">
        <soap:fault name="serviceIndisponible" use="literal"/>
      </wsdl:fault>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="FAIS005-RoutageOperation_EIP">
    <wsdl:port name="autogenerate" binding="tns:FAIS005-RoutageOperation">
      <soap:address location="NOT_APPLICABLE"/>
    </wsdl:port>
  </wsdl:service>
    <xsd:annotation>
    <xsd:documentation>FAIS005-RoutageOperation 01.01</xsd:documentation>
  </xsd:annotation>
</wsdl:definitions>




I have an EIP router pattern that should calls either XSLT-Op1 or XSLT-Op2 depending on the operation invoked. Its jbi.xml is:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<jbi:jbi version="1.0" 
	xmlns:eip="http://petals.ow2.org/components/eip/version-2"
	xmlns:generatedNs="http://myCpy.ban.com/eau/faisabilite/petals/service/FAIS005/v01"
	xmlns:jbi="http://java.sun.com/xml/ns/jbi"
	xmlns:petalsCDK="http://petals.ow2.org/components/extensions/version-5"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	
	<jbi:services binding-component="false">
		<jbi:provides 		
			interface-name="generatedNs:FAIS005-RoutageOperation_Itf"
			service-name="generatedNs:FAIS005-RoutageOperation_EIP"
			endpoint-name="autogenerate">
	
			<!-- CDK specific elements -->
			<petalsCDK:timeout>30000</petalsCDK:timeout>
			<petalsCDK:validate-wsdl>true</petalsCDK:validate-wsdl>
			<petalsCDK:forward-security-subject>false</petalsCDK:forward-security-subject>
			<petalsCDK:forward-message-properties>false</petalsCDK:forward-message-properties>
			<petalsCDK:forward-attachments>false</petalsCDK:forward-attachments>
			<petalsCDK:wsdl>FAIS005-RoutageOperation_01.wsdl</petalsCDK:wsdl>
		
			<!-- Component specific elements -->	
			<eip:eip>router</eip:eip>
			<eip:test-operation>{http://myCpy.ban.com/eau/faisabilite/petals/service/FAIS005/v01}operation-1</eip:test-operation>
			<eip:test-operation>{http://myCpy.ban.com/eau/faisabilite/petals/service/FAIS005/v01}operation-2</eip:test-operation>
			<eip:fault-robust>false</eip:fault-robust>
			<eip:exception-robust>false</eip:exception-robust>
			<eip:attachment-mode>false</eip:attachment-mode>
		</jbi:provides>
		
		<!-- Consumed project 1 ( test = //toto
 ) -->
		<jbi:consumes
			interface-name="iConsumeNsPrefix:XsltInterface"
			service-name="iConsumeNsPrefix:FAIS005-Op1"
			xmlns:iConsumeNsPrefix="http://petals.ow2.org/components/xslt/version-2">
			
			<!-- CK specific fields for this consume -->
			<petalsCDK:operation xmlns:genns1="http://myCpy.ban.com/eau/faisabilite/petals/service/FAIS005/v01">genns1:operation-1</petalsCDK:operation>
			<petalsCDK:mep>InOut</petalsCDK:mep>
			<petalsCDK:timeout>30000</petalsCDK:timeout>
		</jbi:consumes>
		
		<!-- Consumed project 2 ( Default ) -->
		<jbi:consumes
			interface-name="iConsumeNsPrefix:XsltInterface"
			service-name="iConsumeNsPrefix:FAIS005-Op2"
			xmlns:iConsumeNsPrefix="http://petals.ow2.org/components/xslt/version-2">
			
			<!-- CK specific fields for this consume -->
			<petalsCDK:operation xmlns:genns1="http://myCpy.ban.com/eau/faisabilite/petals/service/FAIS005/v01">genns1:operation-2</petalsCDK:operation>
			<petalsCDK:mep>InOut</petalsCDK:mep>
			<petalsCDK:timeout>30000</petalsCDK:timeout>
		</jbi:consumes>
	</jbi:services>
</jbi:jbi>



The 2 XSLT contain the following xsl:

Code:
<xsl:stylesheet version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

	<xsl:output method="xml" indent="yes" encoding="UTF-8"/>

	<xsl:template match="/" xmlns:v01="http://myCpy.ban.com/eau/faisabilite/petals/service/FAIS005/v01">
		<v01:operation-1Response>
        	<param>OPERATION=1</param>
      	</v01:operation-1Response>
	</xsl:template>

</xsl:stylesheet>



Code:
<xsl:stylesheet version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

	<xsl:output method="xml" indent="yes" encoding="UTF-8"/>

	<xsl:template match="/" xmlns:v01="http://myCpy.ban.com/eau/faisabilite/petals/service/FAIS005/v01">
		<v01:operation-2Response>
        	<param>OPERATION=2</param>
      	</v01:operation-2Response>
	</xsl:template>

</xsl:stylesheet>



----------

I can deploy without error but when I try to test Petals get stuck on "processing the pattern" and doesn't do anything else. And I finally get a éWS invocation timeout" in SOAP-UI. Here is the execution trace of Petals:

Code:
petals at localhost:/> [Petals.Container.Components.petals-bc-soap]-FINE 2010-06-14 18:27:33,264 PetalsDispatcher - Checking for Service using target endpoint address : http://172.20.192.105:8084/eau/esb/faisabilite/petals/FAIS005-RoutageOperation
[Petals.Container.Components.petals-bc-soap]-FINE 2010-06-14 18:27:33,264 Receiving a message from Axis2 engine
[Petals.Container.Components.petals-bc-soap]-FINE 2010-06-14 18:27:33,265 Processing the incoming SOAP message
[Petals.Container.Components.petals-bc-soap]-FINEST 2010-06-14 18:27:33,265 soapAction found in the incoming message : operation-1
[Petals.Container.Components.petals-bc-soap]-FINE 2010-06-14 18:27:33,265 Get and update the service definition
[Petals.Container.Components.petals-bc-soap]-FINE 2010-06-14 18:27:33,266 JBI Service endpoint {http://myCpy.ban.com/eau/faisabilite/petals/service/FAIS005/v01}FAIS005-RoutageOperation_EIP ->40598239442358410 (INTERNAL):subdomain1/0/petals-se-eip
[Petals.Container.Components.petals-bc-soap]-FINEST 2010-06-14 18:27:33,289 jbiOperation retrieved : {http://myCpy.ban.com/eau/faisabilite/petals/service/FAIS005/v01}operation-1
[Petals.Container.Components.petals-bc-soap]-FINEST 2010-06-14 18:27:33,293 Message in with Id 'petals:uid:1C2448588FA7B60F3D40601650237740917' to send
[Petals.Container.Components.petals-bc-soap]-FINEST 2010-06-14 18:27:33,293 Message property 'javax.jbi.messaging.protocol.headers' : {}
[Petals.Container.Components.petals-bc-soap]-FINEST 2010-06-14 18:27:33,293 Message Content : <?xml version="1.0" encoding="UTF-8"?><v01:operation-1 xmlns:v01="http://myCpy.ban.com/eau/faisabilite/petals/service/FAIS005/v01" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
         <envMyCpy>
            <id>id1</id>
            <consommateur>conso1</consommateur>
         </envMyCpy>
         <param>param1</param>
      </v01:operation-1>
[Petals.Container.Components.petals-se-eip]-FINE 2010-06-14 18:27:33,295 Accepting a JBI message with Id : petals:uid:1C2448588FA7B60F3D40601650237740917
[Petals.Container.Components.petals-se-eip]-FINEST 2010-06-14 18:27:33,296 Process an exchange as PROVIDER with id : petals:uid:1C2448588FA7B60F3D40601650237740917
[Petals.Container.Components.petals-se-eip]-FINE 2010-06-14 18:27:33,296 Intercepting message processing on ACCEPT
[Petals.Container.Components.petals-se-eip]-FINE 2010-06-14 18:27:33,296 Router: processing the pattern




Configuration:
- Ubuntu
- petals-se-eip-2.5-20100610.103318-7

I got the "petals-se-eip-2.5-20100610.103318-7" version from the maven snapshots repository. In the release there was also another version: "petals-se-eip-2.5-SNAPSHOT" but it looked older. Anyway I did the same thest with both and get the same issue each time.

Could you please telle me what I'm doing wrong?

Thanks,
regards,
Seb!




-------------------- m2f --------------------

Subscribe/Unsubscribe emails notifications.

Response to this email will be posted on the Petals forum.
Please delete the existing text before responding :)

Read the topic online:
http://forum.petalslink.com/viewtopic.php?p=31121#31121

-------------------- m2f --------------------






More information about the Users mailing list