Mule
  1. Mule
  2. MULE-4045

Upgrade from xfire to cxf breaks simple html post to a web service functionality

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Won't Fix or Usage Issue
    • Affects Version/s: 2.1.1
    • Fix Version/s: None
    • Component/s: Modules: CXF
    • Labels:
      None
    • Environment:

      mule-2.1.1-EE

    • User impact:
      Medium
    • Configuration:
      Hide

      <?xml version="1.0" encoding="UTF-8"?>
      <mule xmlns="http://www.mulesource.org/schema/mule/core/2.2"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:spring="http://www.springframework.org/schema/beans"
      xmlns:context="http://www.springframework.org/schema/context"
      xmlns:vm="http://www.mulesource.org/schema/mule/vm/2.2"
      xmlns:client="http://www.mulesource.org/schema/mule/client/2.2"
      xmlns:cxf="http://www.mulesource.org/schema/mule/cxf/2.2"
      xmlns:soap="http://www.mulesource.org/schema/mule/soap/2.2"
      xmlns:stdio="http://www.mulesource.org/schema/mule/stdio/2.2"
      xmlns:management="http://www.mulesource.org/schema/mule/management/2.2"
      xmlns:jms="http://www.mulesource.org/schema/mule/jms/2.2"
      xsi:schemaLocation="
      http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
      http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
      http://www.mulesource.org/schema/mule/core/2.2 http://www.mulesource.org/schema/mule/core/2.2/mule.xsd
      http://www.mulesource.org/schema/mule/vm/2.2 http://www.mulesource.org/schema/mule/vm/2.2/mule-vm.xsd
      http://www.mulesource.org/schema/mule/client/2.2 http://www.mulesource.org/schema/mule/client/2.2/mule-client.xsd
      http://www.mulesource.org/schema/mule/cxf/2.2 http://www.mulesource.org/schema/mule/cxf/2.2/mule-cxf.xsd
      http://www.mulesource.org/schema/mule/soap/2.2 http://www.mulesource.org/schema/mule/soap/2.2/mule-soap.xsd
      http://www.mulesource.org/schema/mule/stdio/2.2 http://www.mulesource.org/schema/mule/stdio/2.2/mule-stdio.xsd
      http://www.mulesource.org/schema/mule/management/2.2 http://www.mulesource.org/schema/mule/management/2.2/mule-management.xsd
      http://www.mulesource.org/schema/mule/jms/2.2 http://www.mulesource.org/schema/mule/jms/2.2/mule-jms.xsd">

      <description> Demonstrates Web Services and JMS services per Wave Demo Guidelines. To invoke service use URL http://localhost:65071/services/create/product/SKU001</description>

      <management:jmx-default-config/>

      <client:remote-dispatcher-agent>
      <client:remote-endpoint address="tcp://localhost:60505" synchronous="true"/>
      </client:remote-dispatcher-agent>

      <jms:activemq-connector name="jmsConnector" brokerURL="tcp://localhost:61616"/>

      <jms:object-to-jmsmessage-transformer name="ObjectToJMSMessage" />
      <jms:jmsmessage-to-object-transformer name="JMSMessageToObject" />
      <soap:http-to-soap-request-transformer name="HttpRequestToSoapRequest" />
      <message-properties-transformer name="PlainTextResponseTransformer">
      <add-message-property key="Content-Type" value="text/plain"/>
      </message-properties-transformer>
      <custom-transformer name="TestTransform" class="org.mule.samples.components.TestTransform" />

      <model name="Demo1">

      <service name="EnterOrder">
      <inbound>
      <cxf:inbound-endpoint address="http://localhost:65071/services/EnterOrder" transformer-refs="HttpRequestToSoapRequest" frontend="simple" synchronous="true"/>
      </inbound>
      <component class="org.mule.samples.components.OrderService"/>
      <outbound>
      <chaining-router>
      <jms:outbound-endpoint address="jms://inventory.request.queue"/>
      </chaining-router>
      </outbound>
      <async-reply timeout="10000">
      <jms:inbound-endpoint address="jms://inventory.response.queue" transformer-refs="JMSMessageToObject TestTransform"/>
      <single-async-reply-router/>
      </async-reply>
      </service>

      <service name="CheckInventory">
      <inbound>
      <jms:inbound-endpoint address="jms://inventory.request.queue" synchronous="true"/>
      </inbound>
      <component class="org.mule.samples.components.InventoryService"/>
      <outbound>
      <pass-through-router>
      <jms:outbound-endpoint address="jms://inventory.response.queue" synchronous="true"/>
      </pass-through-router>
      </outbound>
      </service>

      </model>
      </mule>

      Show
      <?xml version="1.0" encoding="UTF-8"?> <mule xmlns="http://www.mulesource.org/schema/mule/core/2.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:spring="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:vm="http://www.mulesource.org/schema/mule/vm/2.2" xmlns:client="http://www.mulesource.org/schema/mule/client/2.2" xmlns:cxf="http://www.mulesource.org/schema/mule/cxf/2.2" xmlns:soap="http://www.mulesource.org/schema/mule/soap/2.2" xmlns:stdio="http://www.mulesource.org/schema/mule/stdio/2.2" xmlns:management="http://www.mulesource.org/schema/mule/management/2.2" xmlns:jms="http://www.mulesource.org/schema/mule/jms/2.2" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.mulesource.org/schema/mule/core/2.2 http://www.mulesource.org/schema/mule/core/2.2/mule.xsd http://www.mulesource.org/schema/mule/vm/2.2 http://www.mulesource.org/schema/mule/vm/2.2/mule-vm.xsd http://www.mulesource.org/schema/mule/client/2.2 http://www.mulesource.org/schema/mule/client/2.2/mule-client.xsd http://www.mulesource.org/schema/mule/cxf/2.2 http://www.mulesource.org/schema/mule/cxf/2.2/mule-cxf.xsd http://www.mulesource.org/schema/mule/soap/2.2 http://www.mulesource.org/schema/mule/soap/2.2/mule-soap.xsd http://www.mulesource.org/schema/mule/stdio/2.2 http://www.mulesource.org/schema/mule/stdio/2.2/mule-stdio.xsd http://www.mulesource.org/schema/mule/management/2.2 http://www.mulesource.org/schema/mule/management/2.2/mule-management.xsd http://www.mulesource.org/schema/mule/jms/2.2 http://www.mulesource.org/schema/mule/jms/2.2/mule-jms.xsd "> <description> Demonstrates Web Services and JMS services per Wave Demo Guidelines. To invoke service use URL http://localhost:65071/services/create/product/SKU001 </description> <management:jmx-default-config/> <client:remote-dispatcher-agent> <client:remote-endpoint address="tcp://localhost:60505" synchronous="true"/> </client:remote-dispatcher-agent> <jms:activemq-connector name="jmsConnector" brokerURL="tcp://localhost:61616"/> <jms:object-to-jmsmessage-transformer name="ObjectToJMSMessage" /> <jms:jmsmessage-to-object-transformer name="JMSMessageToObject" /> <soap:http-to-soap-request-transformer name="HttpRequestToSoapRequest" /> <message-properties-transformer name="PlainTextResponseTransformer"> <add-message-property key="Content-Type" value="text/plain"/> </message-properties-transformer> <custom-transformer name="TestTransform" class="org.mule.samples.components.TestTransform" /> <model name="Demo1"> <service name="EnterOrder"> <inbound> <cxf:inbound-endpoint address="http://localhost:65071/services/EnterOrder" transformer-refs="HttpRequestToSoapRequest" frontend="simple" synchronous="true"/> </inbound> <component class="org.mule.samples.components.OrderService"/> <outbound> <chaining-router> <jms:outbound-endpoint address="jms://inventory.request.queue"/> </chaining-router> </outbound> <async-reply timeout="10000"> <jms:inbound-endpoint address="jms://inventory.response.queue" transformer-refs="JMSMessageToObject TestTransform"/> <single-async-reply-router/> </async-reply> </service> <service name="CheckInventory"> <inbound> <jms:inbound-endpoint address="jms://inventory.request.queue" synchronous="true"/> </inbound> <component class="org.mule.samples.components.InventoryService"/> <outbound> <pass-through-router> <jms:outbound-endpoint address="jms://inventory.response.queue" synchronous="true"/> </pass-through-router> </outbound> </service> </model> </mule>
    • Similar Issues:
      MULE-3045Upgrade to latest CXF version
      MULE-1676Xfire connector behaves asynchronously and does not respond to client if sync property is set explicity on endpoint
      MULE-5628Mule breaks multipart/form-data encoded messages
      MULE-2017Mule Integration with Xfire Web service
      MULE-2460Web Service Proxy: should use GET instead of POST for retrieving the WSDL
      MULE-3511CXF needs to support web service client invocation input format in xml
      MULE-7940Upgrade CXF to latest version
      MULE-1263XFire binding to port
      MULE-638Upgrade XFire provider to 1.0 final release version
      MULE-4043CXF registers full URL as a service name, breaks JMX name conformance

      Description

      1.6 endpoint:
      <endpoint address="xfire:http://localhost:65071/services" transformers="HttpRequestToSoapRequest" remoteSync="true"/>

      2.2 endpoint:
      <cxf:inbound-endpoint address="http://localhost:65071/services" transformer-refs="HttpRequestToSoapRequest" frontend="simple" synchronous="true"/>

      HTML Client:

      <script type="text/javascript">document.write('<form action="http://localhost:65071/services" method="GET">');</script>
      <input name="method" type="hidden" value="create"/>
      <input name="product" type="text"/>
      <input type="submit" value="Submit Order"/>
      </form>

        Activity

        Hide
        Ken Yagen added a comment -

        The HttpRequestToSoapRequest transformer is expecting the 'method' property to be set in the MuleMessage. In 1.6 we were able to set that by including a hidden field in the html form called 'method'. But that approach is not working in 2.x.

        Show
        Ken Yagen added a comment - The HttpRequestToSoapRequest transformer is expecting the 'method' property to be set in the MuleMessage. In 1.6 we were able to set that by including a hidden field in the html form called 'method'. But that approach is not working in 2.x.
        Hide
        Ken Yagen added a comment -

        Documentation should also be updated - no mention of the HttpRequestToSoapRequest at all in the docs.

        Show
        Ken Yagen added a comment - Documentation should also be updated - no mention of the HttpRequestToSoapRequest at all in the docs.
        Hide
        Ken Yagen added a comment -

        An alternative on MuleForge - JAX-RS/Jersey allows you to map form fields to your class via some simple annotations.

        Show
        Ken Yagen added a comment - An alternative on MuleForge - JAX-RS/Jersey allows you to map form fields to your class via some simple annotations.
        Hide
        Evangelina Martinez Ruiz Moreno added a comment -

        Closing this issue since it's it does not apply to Mule 3 now that CXF is a module.

        Show
        Evangelina Martinez Ruiz Moreno added a comment - Closing this issue since it's it does not apply to Mule 3 now that CXF is a module.

          People

          • Assignee:
            Evangelina Martinez Ruiz Moreno
            Reporter:
            Puneet Gupta
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development