JIRA

  • Log In Access more options
    • Online Help
    • GreenHopper Help
    • Agile Answers
    • Use Agile By Default
    • Keyboard Shortcuts
    • About JIRA
    • JIRA Credits
    • What’s New
  • Dashboards Access more options (Alt+d)
  • Projects Access more options (Alt+p)
  • Issues Access more options (Alt+i)
  • Agile Access more options (Alt+g)
  • Create Issue
  • Mule
  • MULE-5363

Improper response from ws:proxy (pattern based configuration) when request header contains Accept-Encoding: gzip,deflate

  • Agile Board
  • More Actions
  • Views
    • XML
    • Word
    • Printable

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Fixed
  • Affects Version/s: 3.1.0
  • Fix Version/s: 3.1.4 (EE only), 3.2.4 (EE only), 3.3.3 (EE only), 3.4.0
  • Component/s: Core: Configuration
  • Labels:
    None
  • Environment:

    Mule IDE, Mule 3.1.0, SOAPUI 3.6.1, Windows 7

  • User impact:
    Medium
  • Configuration:
    Hide

    <?xml version="1.0" encoding="UTF-8"?>
    <mule xmlns="http://www.mulesoft.org/schema/mule/core"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:cxf="http://www.mulesoft.org/schema/mule/cxf"
    xmlns:jdbc="http://www.mulesoft.org/schema/mule/jdbc"
    xmlns:ws="http://www.mulesoft.org/schema/mule/ws"
    xsi:schemaLocation="
    http://www.mulesoft.org/schema/mule/cxf http://www.mulesoft.org/schema/mule/cxf/3.1/mule-cxf.xsd
    http://www.mulesoft.org/schema/mule/jdbc http://www.mulesoft.org/schema/mule/jdbc/3.1/mule-jdbc.xsd
    http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/3.1/mule.xsd
    http://www.mulesoft.org/schema/mule/ws http://www.mulesoft.org/schema/mule/ws/3.1/mule-ws.xsd">

    <ws:proxy name="SampleService1" inboundAddress="http://localhost:8080/ws/SampleService" outboundAddress="http://ltw7-eng-sathwik:8088/mockSampleServiceSOAP" />
    </mule>

    Show
    <?xml version="1.0" encoding="UTF-8"?> <mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cxf="http://www.mulesoft.org/schema/mule/cxf" xmlns:jdbc="http://www.mulesoft.org/schema/mule/jdbc" xmlns:ws="http://www.mulesoft.org/schema/mule/ws" xsi:schemaLocation=" http://www.mulesoft.org/schema/mule/cxf http://www.mulesoft.org/schema/mule/cxf/3.1/mule-cxf.xsd http://www.mulesoft.org/schema/mule/jdbc http://www.mulesoft.org/schema/mule/jdbc/3.1/mule-jdbc.xsd http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/3.1/mule.xsd http://www.mulesoft.org/schema/mule/ws http://www.mulesoft.org/schema/mule/ws/3.1/mule-ws.xsd"> <ws:proxy name="SampleService1" inboundAddress="http://localhost:8080/ws/SampleService" outboundAddress="http://ltw7-eng-sathwik:8088/mockSampleServiceSOAP" /> </mule>
  • Similar Issues:
    None

Description

Steps to Reproduce:
1) Create a sample WSDL in eclipse
2) Import this wsdl into SOAPUI project.
3) Create the mock service in SOAPUI for this WSDL.
4) Start the mock service with the HTTP Settings of SOAPUI-> Response Compression: checkbox checked
5) Send the request to the ws:proxy service deployed in mule ide.
6) You can see the "Accept-Encoding: gzip,deflate\r\n" coming in the request from SOAPUI.
7) Below is the logs from Mule, check the response

DEBUG 2011-01-21 13:17:21,655 http://connector.http.0.receiver.2 httpclient.wire.header: << "POST /ws/SampleService HTTP/1.0\r\n"
DEBUG 2011-01-21 13:17:21,657 http://connector.http.0.receiver.2 httpclient.wire.header: << "Accept-Encoding: gzip,deflate\r\n"
DEBUG 2011-01-21 13:17:21,657 http://connector.http.0.receiver.2 httpclient.wire.header: << "Content-Type: text/xml;charset=UTF-8\r\n"
DEBUG 2011-01-21 13:17:21,659 http://connector.http.0.receiver.2 httpclient.wire.header: << "SOAPAction: "http://www.xxx.com/ws/SampleService/NewOperation"\r\n"
DEBUG 2011-01-21 13:17:21,659 http://connector.http.0.receiver.2 httpclient.wire.header: << "User-Agent: Jakarta Commons-HttpClient/3.1\r\n"
DEBUG 2011-01-21 13:17:21,659 http://connector.http.0.receiver.2 httpclient.wire.header: << "Host: localhost:8080\r\n"
DEBUG 2011-01-21 13:17:21,660 http://connector.http.0.receiver.2 httpclient.wire.header: << "Content-Length: 278\r\n"
DEBUG 2011-01-21 13:17:21,660 http://connector.http.0.receiver.2 httpclient.wire.header: << "\r\n"

DEBUG 2011-01-21 13:17:21,767 http://connector.http.0.receiver.2 httpclient.wire.header: >> "POST /mockSampleServiceSOAP HTTP/1.0\r\n"
DEBUG 2011-01-21 13:17:21,777 http://connector.http.0.receiver.2 httpclient.wire.header: >> "X-MULE_ENDPOINT: http://ltw7-eng-sathwik:8088/mockSampleServiceSOAP\r\n"
DEBUG 2011-01-21 13:17:21,777 http://connector.http.0.receiver.2 httpclient.wire.header: >> "Accept-Encoding: gzip,deflate\r\n"
DEBUG 2011-01-21 13:17:21,777 http://connector.http.0.receiver.2 httpclient.wire.header: >> "Content-Type: text/xml;charset=UTF-8\r\n"
DEBUG 2011-01-21 13:17:21,777 http://connector.http.0.receiver.2 httpclient.wire.header: >> "SOAPAction: "http://www.xxx.com/ws/SampleService/NewOperation"\r\n"
DEBUG 2011-01-21 13:17:21,778 http://connector.http.0.receiver.2 httpclient.wire.header: >> "Keep-Alive: false\r\n"
DEBUG 2011-01-21 13:17:21,778 http://connector.http.0.receiver.2 httpclient.wire.header: >> "Content-Length: 278\r\n"
DEBUG 2011-01-21 13:17:21,778 http://connector.http.0.receiver.2 httpclient.wire.header: >> "X-MULE_ENCODING: UTF-8\r\n"
DEBUG 2011-01-21 13:17:21,778 http://connector.http.0.receiver.2 httpclient.wire.header: >> "X-MULE_ORIGINATING_ENDPOINT: endpoint.http.localhost.8080.ws.SampleService\r\n"
DEBUG 2011-01-21 13:17:21,778 http://connector.http.0.receiver.2 httpclient.wire.header: >> "User-Agent: Jakarta Commons-HttpClient/3.1\r\n"
DEBUG 2011-01-21 13:17:21,778 http://connector.http.0.receiver.2 httpclient.wire.header: >> "X-MULE_REMOTE_CLIENT_ADDRESS: /127.0.0.1:25540\r\n"
DEBUG 2011-01-21 13:17:21,778 http://connector.http.0.receiver.2 httpclient.wire.header: >> "Host: ltw7-eng-sathwik:8088\r\n"
DEBUG 2011-01-21 13:17:21,778 http://connector.http.0.receiver.2 httpclient.wire.header: >> "Cookie: $Version=0; MULE_SESSION=rO0ABXNyACNvcmcubXVsZS5zZXNzaW9uLkRlZmF1bHRNdWxlU2Vzc2lvbi7rdtEW7GGKAwAEWgAFdmFsaWRMAAJpZHQAEkxqYXZhL2xhbmcvU3RyaW5nO0wACnByb3BlcnRpZXN0AA9MamF2YS91dGlsL01hcDtMAA9zZWN1cml0eUNvbnRleHR0ACdMb3JnL211bGUvYXBpL3NlY3VyaXR5L1NlY3VyaXR5Q29udGV4dDt4cAF0ACRhZGRmZTk4NS0yNTMyLTExZTAtYTM1MS04MTQ1M2FhNWRlZGVzcgAlamF2YS51dGlsLkNvbGxlY3Rpb25zJFN5bmNocm9uaXplZE1hcBtz+QlLSzl7AwACTAABbXEAfgACTAAFbXV0ZXh0ABJMamF2YS9sYW5nL09iamVjdDt4cHNyACRvcmcubXVsZS51dGlsLkNhc2VJbnNlbnNpdGl2ZUhhc2hNYXCd0dnvZ0XOAAMAAHhwdww/QAAAAAAAEAAAAAB4cQB+AAh4cHQADlNhbXBsZVNlcnZpY2UxeA==\r\n"
DEBUG 2011-01-21 13:17:21,779 http://connector.http.0.receiver.2 httpclient.wire.header: >> "\r\n"
DEBUG 2011-01-21 13:17:21,779 http://connector.http.0.receiver.2 httpclient.wire.content: >> "<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sam="http://www.xxx.com/ws/SampleService/">\n"
DEBUG 2011-01-21 13:17:21,779 http://connector.http.0.receiver.2 httpclient.wire.content: >> " <soapenv:Header/>\n"
DEBUG 2011-01-21 13:17:21,779 http://connector.http.0.receiver.2 httpclient.wire.content: >> " <soapenv:Body>\n"
DEBUG 2011-01-21 13:17:21,779 http://connector.http.0.receiver.2 httpclient.wire.content: >> " <sam:NewOperation>\n"
DEBUG 2011-01-21 13:17:21,779 http://connector.http.0.receiver.2 httpclient.wire.content: >> " <in>hi</in>\n"
DEBUG 2011-01-21 13:17:21,779 http://connector.http.0.receiver.2 httpclient.wire.content: >> " </sam:NewOperation>\n"
DEBUG 2011-01-21 13:17:21,779 http://connector.http.0.receiver.2 httpclient.wire.content: >> " </soapenv:Body>\n"
DEBUG 2011-01-21 13:17:21,779 http://connector.http.0.receiver.2 httpclient.wire.content: >> "</soapenv:Envelope>"
DEBUG 2011-01-21 13:17:21,786 http://connector.http.0.receiver.2 httpclient.wire.header: << "HTTP/1.1 200 OK\r\n"
DEBUG 2011-01-21 13:17:21,786 http://connector.http.0.receiver.2 httpclient.wire.header: << "HTTP/1.1 200 OK\r\n"
DEBUG 2011-01-21 13:17:21,787 http://connector.http.0.receiver.2 httpclient.wire.header: << "Content-Type: text/xml; charset=utf-8\r\n"
DEBUG 2011-01-21 13:17:21,788 http://connector.http.0.receiver.2 httpclient.wire.header: << "Content-Encoding: gzip\r\n"
DEBUG 2011-01-21 13:17:21,788 http://connector.http.0.receiver.2 httpclient.wire.header: << "Server: Jetty(6.1.x)\r\n"
DEBUG 2011-01-21 13:17:21,788 http://connector.http.0.receiver.2 httpclient.wire.header: << "\r\n"
DEBUG 2011-01-21 13:17:21,799 http://connector.http.0.receiver.2 httpclient.wire.content: << "0x1f0x8b0x80x00x00x00x00x00x00x0}0x90A\n"
DEBUG 2011-01-21 13:17:21,799 http://connector.http.0.receiver.2 httpclient.wire.content: << "0xc200x10E0xf70x9e"0xf40x00x99}0x88]0x8BW\n"
DEBUG 2011-01-21 13:17:21,799 http://connector.http.0.receiver.2 httpclient.wire.content: << "0xf60x4c;0xd8B0x920x9Il0xec0xedmK0xa30xb8q0xf70xe70xff0xff0x98atd0xf40xe4&uv0x130x190xf6$^0xd60xb80xa8v0xfbX\r)y0x50x100xbb0x81,F0xb90xa4k$9<`0x15@;0x7U!0xd1~0xa80x9c0xb30xe4;{0x9ce0xc70x16r0x840x160xad70xd4R0x980xc6na0xea0x830x10B0x970x1b0x1a0xc20x9e0x20xfc0x9a'0xee0xe70xcd0xd9L0xb40xeaB0xf90xea)`0x1a0xd90xdd(zv0x91Ja0xed0xf030xd5\r0x190xc30x1aVYP0xf80xcbj0xf80xdd0xf70x9d0xcbc0xea70xbaB0xf70xdb+0x10x00x0"

8) Now, change the HTTP Settings of SOAPUI-> Response Compression: checkbox un-checked
9) Resend the request from soapui.The "Accept-Encoding: gzip,deflate\r\n" header is not part of the request now.
10) The logs from Mule are as follows, the response is perfect now.

21/Jan/2011 13:35:58 - << "POST /ws/SampleService HTTP/1.0\r\n"
21/Jan/2011 13:35:58 - << "Content-Type: text/xml;charset=UTF-8\r\n"
21/Jan/2011 13:35:58 - << "SOAPAction: "http://www.xxx.com/ws/SampleService/NewOperation"\r\n"
21/Jan/2011 13:35:58 - << "User-Agent: Jakarta Commons-HttpClient/3.1\r\n"
21/Jan/2011 13:35:58 - << "Host: localhost:8080\r\n"
21/Jan/2011 13:35:58 - << "Content-Length: 278\r\n"
21/Jan/2011 13:35:58 - << "\r\n"
21/Jan/2011 13:35:58 - >> "POST /mockSampleServiceSOAP HTTP/1.0\r\n"
21/Jan/2011 13:35:58 - >> "X-MULE_ENDPOINT: http://ltw7-eng-sathwik:8088/mockSampleServiceSOAP\r\n"
21/Jan/2011 13:35:58 - >> "Content-Type: text/xml;charset=UTF-8\r\n"
21/Jan/2011 13:35:58 - >> "SOAPAction: "http://www.xxx.com/ws/SampleService/NewOperation"\r\n"
21/Jan/2011 13:35:58 - >> "Keep-Alive: false\r\n"
21/Jan/2011 13:35:58 - >> "Content-Length: 278\r\n"
21/Jan/2011 13:35:58 - >> "X-MULE_ENCODING: UTF-8\r\n"
21/Jan/2011 13:35:58 - >> "X-MULE_ORIGINATING_ENDPOINT: endpoint.http.localhost.8080.ws.SampleService\r\n"
21/Jan/2011 13:35:58 - >> "User-Agent: Jakarta Commons-HttpClient/3.1\r\n"
21/Jan/2011 13:35:58 - >> "X-MULE_REMOTE_CLIENT_ADDRESS: /127.0.0.1:17455\r\n"
21/Jan/2011 13:35:58 - >> "Host: ltw7-eng-sathwik:8088\r\n"
21/Jan/2011 13:35:58 - >> "Cookie: $Version=0; MULE_SESSION=rO0ABXNyACNvcmcubXVsZS5zZXNzaW9uLkRlZmF1bHRNdWxlU2Vzc2lvbi7rdtEW7GGKAwAEWgAFdmFsaWRMAAJpZHQAEkxqYXZhL2xhbmcvU3RyaW5nO0wACnByb3BlcnRpZXN0AA9MamF2YS91dGlsL01hcDtMAA9zZWN1cml0eUNvbnRleHR0ACdMb3JnL211bGUvYXBpL3NlY3VyaXR5L1NlY3VyaXR5Q29udGV4dDt4cAF0ACQ0N2Q1ZTc1Zi0yNTM1LTExZTAtODYwOC1kNzUwY2ZmNjZiNWRzcgAlamF2YS51dGlsLkNvbGxlY3Rpb25zJFN5bmNocm9uaXplZE1hcBtz+QlLSzl7AwACTAABbXEAfgACTAAFbXV0ZXh0ABJMamF2YS9sYW5nL09iamVjdDt4cHNyACRvcmcubXVsZS51dGlsLkNhc2VJbnNlbnNpdGl2ZUhhc2hNYXCd0dnvZ0XOAAMAAHhwdww/QAAAAAAAEAAAAAB4cQB+AAh4cHQADlNhbXBsZVNlcnZpY2UxeA==\r\n"
21/Jan/2011 13:35:58 - >> "\r\n"
21/Jan/2011 13:35:58 - >> "<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sam="http://www.xxx.com/ws/SampleService/">\n"
21/Jan/2011 13:35:58 - >> " <soapenv:Header/>\n"
21/Jan/2011 13:35:58 - >> " <soapenv:Body>\n"
21/Jan/2011 13:35:58 - >> " <sam:NewOperation>\n"
21/Jan/2011 13:35:58 - >> " <in>hi</in>\n"
21/Jan/2011 13:35:58 - >> " </sam:NewOperation>\n"
21/Jan/2011 13:35:58 - >> " </soapenv:Body>\n"
21/Jan/2011 13:35:58 - >> "</soapenv:Envelope>"
21/Jan/2011 13:35:58 - << "HTTP/1.1 200 OK\r\n"
21/Jan/2011 13:35:58 - << "HTTP/1.1 200 OK\r\n"
21/Jan/2011 13:35:58 - << "Content-Type: text/xml; charset=utf-8\r\n"
21/Jan/2011 13:35:58 - << "Server: Jetty(6.1.x)\r\n"
21/Jan/2011 13:35:58 - << "\r\n"
21/Jan/2011 13:35:59 - << "<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sam="http://www.xxx.com/ws/SampleService/">\n"
21/Jan/2011 13:35:59 - << " <soapenv:Header/>\n"
21/Jan/2011 13:35:59 - << " <soapenv:Body>\n"
21/Jan/2011 13:35:59 - << " <sam:NewOperationResponse>\n"
21/Jan/2011 13:35:59 - << " <out>Hello</out>\n"
21/Jan/2011 13:35:59 - << " </sam:NewOperationResponse>\n"
21/Jan/2011 13:35:59 - << " </soapenv:Body>\n"
21/Jan/2011 13:35:59 - << "</soapenv:Envelope>"

This is my forum entry,
http://forums.mulesoft.org/thread.jspa?threadID=4586&tstart=0

regards,
sathwik

Activity

Ascending order - Click to sort in descending order
  • All
  • Comments
  • Work Log
  • History
  • Activity
  • Transitions
  • Commits
  • Source
  • Builds
Hide
Permalink
David Dossot added a comment - 24/Jan/11 09:55 AM

The issue is that the headers coming from the remote web service are not propagated back to the proxy caller.

ws:proxy is built around the good old WSProxyService component, so I suspect this change comes from the stricter property scoping in Mule 3.

Show
David Dossot added a comment - 24/Jan/11 09:55 AM The issue is that the headers coming from the remote web service are not propagated back to the proxy caller. ws:proxy is built around the good old WSProxyService component, so I suspect this change comes from the stricter property scoping in Mule 3.
Hide
Permalink
David Dossot added a comment - 05/Aug/11 12:30 PM - edited

One possible solution is to use the same approach used in the new HttpProxy pattern, ie. put a response message properties transformer in place:

@Override
protected void configureMessageProcessorsAfterTransformation(final MessageProcessorChainBuilder builder)

{ final TransformerTemplate copyInboundToOutboundPropertiesTransformer = new TransformerTemplate( new CopyInboundToOutboundPropertiesTransformerCallback()); builder.chain(copyInboundToOutboundPropertiesTransformer); builder.chain(new ResponseMessageProcessorAdapter(copyInboundToOutboundPropertiesTransformer)); builder.chain(outboundEndpoint); }
Show
David Dossot added a comment - 05/Aug/11 12:30 PM - edited One possible solution is to use the same approach used in the new HttpProxy pattern, ie. put a response message properties transformer in place: @Override protected void configureMessageProcessorsAfterTransformation(final MessageProcessorChainBuilder builder) { final TransformerTemplate copyInboundToOutboundPropertiesTransformer = new TransformerTemplate( new CopyInboundToOutboundPropertiesTransformerCallback()); builder.chain(copyInboundToOutboundPropertiesTransformer); builder.chain(new ResponseMessageProcessorAdapter(copyInboundToOutboundPropertiesTransformer)); builder.chain(outboundEndpoint); }
Hide
Permalink
Pablo Kraan added a comment - 10/Jan/12 03:33 PM

Mike, what is the status of this issue?

Show
Pablo Kraan added a comment - 10/Jan/12 03:33 PM Mike, what is the status of this issue?
Hide
Permalink
David Dossot added a comment - 24/Jul/12 03:12 PM

This issue is really annoying. A simple ws proxy like the following:

<pattern:web-service-proxy name="directProxy"
inboundAddress="http://localhost:8080/fed-ach"
outboundAddress="http://www.webservicex.net/FedACH.asmx" />

doesn't work because the remote server GZips the answer but web-service-proxy doesn't propagate the "Content-Encoding: gzip" header back to the caller.

Show
David Dossot added a comment - 24/Jul/12 03:12 PM This issue is really annoying. A simple ws proxy like the following: <pattern:web-service-proxy name="directProxy" inboundAddress="http://localhost:8080/fed-ach" outboundAddress="http://www.webservicex.net/FedACH.asmx" /> doesn't work because the remote server GZips the answer but web-service-proxy doesn't propagate the "Content-Encoding: gzip" header back to the caller.
Hide
Permalink
Damian Bakarcic added a comment - 07/Jan/13 01:07 PM

3.1.x: https://fisheye.codehaus.org/changelog/mule/?cs=25154
3.2.x: https://fisheye.codehaus.org/changelog/mule/?cs=25158
3.3.x: https://fisheye.codehaus.org/changelog/mule/?cs=25160
3.x: https://fisheye.codehaus.org/changelog/mule/?cs=25167

Show
Damian Bakarcic added a comment - 07/Jan/13 01:07 PM 3.1.x: https://fisheye.codehaus.org/changelog/mule/?cs=25154 3.2.x: https://fisheye.codehaus.org/changelog/mule/?cs=25158 3.3.x: https://fisheye.codehaus.org/changelog/mule/?cs=25160 3.x: https://fisheye.codehaus.org/changelog/mule/?cs=25167
Hide
Permalink
Damian Bakarcic added a comment - 10/Jan/13 08:37 AM

Reopened issue just to change fix version from 3.3.2 to correct fix version 3.3.3.

Show
Damian Bakarcic added a comment - 10/Jan/13 08:37 AM Reopened issue just to change fix version from 3.3.2 to correct fix version 3.3.3.

People

  • Assignee:
    Damian Bakarcic
    Reporter:
    sathwik bp
Vote (2)
Watch (2)

Dates

  • Created:
    24/Jan/11 12:39 AM
    Updated:
    10/Jan/13 08:37 AM
    Resolved:
    10/Jan/13 08:37 AM

Agile

  • View on Board
  • Atlassian JIRA (v5.0.7#734-sha1:8ad78a6)
  • Report a problem
  • Powered by a free Atlassian JIRA open source license for MuleForge. Try JIRA - bug tracking software for your team.