My goal is to incorporate a transformation inside of my slip-routing. But,
since I am experiencing the "Content is not allowed in Prolog" error -
similar to post
(http://www.nabble.com/org.xml.sax.SAXParseException%3A-Content-is-not-allowed-in-prolog-t1687645.html#a4579039),
I decided to place the transformation outside of the routing for the time
being. The payload I am passing to the httpconnector  is...

<typ:add xmlns:typ="http://MyCalc.server.simpleexample/types";>
        <param1>1</param1><param2>10</param2>
</typ:add>

As a test, I transform this, well actually my xslt replaces as....

<ser:simpleMethod xmlns:ser="http://server.simpleexample/";>
 <arg0>20</arg0>
 <arg1>2</arg1>
</ser:simpleMethod>

I expected the transformed XML to be passed into the routing, ultimately
becoming the input to my SOAP call. Instead my HTML client, is receiving the
transformed XML. Furthermore, it does not appear that the SOAP call is ever
performed. See below for servicemix.xml and XSLT file.

QN1: Why is message not moving onto the routing? Does this have to do with
setting the appropriate MEP on the trnasformation compoenent?
QN2: Why am I experiencing the 'org.xml.sax.SAXParseException: Content is
not allowed in prolog" when incorporating the trnaformations inside of the
routing?


The snippet from servicemix.log follows...

12:06:01,657 | DEBUG | Thread-8   | SedaFlow                 |
emix.jbi.nmr.flow.AbstractFlow  165 | Called Flow doRouting
12:06:01,657 | DEBUG | Thread-8   | DeliveryChannelImpl      |
.messaging.DeliveryChannelImpl  562 | Received: MessageExchange[
  id: ID:markpxpr52-3409-1150128327875-2:0
  status: Done
  role: provider
  service: transformer
  endpoint: transformer
  in: <?xml version="1.0" encoding="UTF-8"?><typ:add
xmlns:typ="http://MyCalc.server.simpleexample/types";>
         <param1>1</param1><param2>10</param2>
      </typ:add>
  out: <?xml version="1.0" encoding="UTF-8"?><ser:simpleMethod
xmlns:ser="http://server.simpleexample/";
xmlns:my="http://servicemix.org/demo/";><arg0>20</arg0><arg1>2</arg1></ser:simpleMethod>
]


SERVICEMIX.XML

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:sm="http://servicemix.apache.org/config/1.0"; 
xmlns:eip="http://servicemix.apache.org/eip/1.0"; 
xmlns:test="http://servicemix.apache.org/demo/";>

<sm:container id="jbi" rootDir="./wdir" useMBeanServer="true"
createMBeanServer="true" installationDirPath="./install"
deploymentDirPath="./deploy" dumpStats="true" statsInterval="10"
flowName="seda">
<sm:activationSpecs>
<sm:activationSpec id="httpReceiver" service="test:httpBinding"
endpoint="httpReceiver" 
destinationService="foo:transformer">
        <sm:component>
                <bean
class="org.apache.servicemix.components.http.HttpConnector">
                        <property name="host" value="localhost"/>
                        <property name="port" value="8912"/>
                </bean>
        </sm:component>
</sm:activationSpec>
<sm:activationSpec id="servicemix-eip" >
        <sm:component>
                <eip:component>
                        <eip:endpoints>
                                <eip:static-routing-slip
service="test:routingSlip" endpoint="endpoint">
                                        <eip:targets>
                                                <eip:exchange-target
service="foo:addIt2" />
                                                <eip:exchange-target
service="test:echo"/>
                                        </eip:targets>
                                </eip:static-routing-slip>
                        </eip:endpoints>
                </eip:component>
        </sm:component>
</sm:activationSpec>
<sm:activationSpec id="echo" service="test:echo" endpoint="endpoint">
        <sm:component>
                <bean
class="org.apache.servicemix.components.util.EchoComponent"/>
        </sm:component>
</sm:activationSpec>



<!-- This just invokes another service -->
<sm:activationSpec componentName="divideIt"   
                   service="foo:divideIt"
                   endpoint="divideIt">
  <sm:component>
    <bean class="org.apache.servicemix.components.saaj.SaajBinding">
          <property name="soapEndpoint">
              <bean class="javax.xml.messaging.URLEndpoint">
                  <constructor-arg
value="http://localhost:8081/jaxws-simpleexample/simplemethod"/>
              </bean>
          </property>
    </bean>
  </sm:component>
</sm:activationSpec>


<sm:activationSpec componentName="addIt2"   
                   service="foo:addIt2"
                   endpoint="addIt2">
  <sm:component>
    <bean class="org.apache.servicemix.components.saaj.SaajBinding">
          <property name="soapEndpoint">
              <bean class="javax.xml.messaging.URLEndpoint">
                  <constructor-arg
value="http://localhost:8081/axis2/services/MyCalc"/>
              </bean>
          </property>
    </bean>
  </sm:component>
</sm:activationSpec>


<sm:activationSpec componentName="transformer" service="foo:transformer"
destinationService="test:routingSlip">
  <sm:component><bean
class="org.apache.servicemix.components.xslt.XsltComponent">
    <property name="xsltResource" value="fake_transform.xsl"/>
  </bean></sm:component>
</sm:activationSpec>


</sm:activationSpecs>
</sm:container>
</beans>


XSLT

<?xml version="1.0"?>
<xsl:stylesheet
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
        xmlns:jbi="xalan://org.servicemix.components.xslt.XalanExtension"
        extension-element-prefixes="jbi"
        xmlns:my="http://servicemix.org/demo/";
        version="1.0">
    <xsl:template match="/">
<ser:simpleMethod xmlns:ser="http://server.simpleexample/";>
 <arg0>20</arg0>
 <arg1>2</arg1>
</ser:simpleMethod>
</xsl:template>
</xsl:stylesheet>

Thanks and regards,
Mark
--
View this message in context: 
http://www.nabble.com/xslt-and-routing-t1775037.html#a4831662
Sent from the ServiceMix - User forum at Nabble.com.

Reply via email to