[#GLASSFISH-5258] gzip compressed ws-request are not

Werbung
[GLASSFISH-5258] gzip compressed ws-request are not working Created:
04/Jul/08 Updated: 10/Mar/17 Resolved: 01/Oct/08
Status:
Project:
Component/s:
Affects
Version/s:
Fix Version/s:
Resolved
glassfish
grizzly-kernel
9.1peur2
Type:
Reporter:
Resolution:
Labels:
Remaining
Estimate:
Time Spent:
Original
Estimate:
Environment:
Improvement
johgoe
Won't Fix
None
Not Specified
Issuezilla Id:
5,258
V3
Priority:
Assignee:
Votes:
Major
jfarcand
0
Not Specified
Not Specified
Operating System: All
Platform: All
Description
My Version is Sun Java System Application Server 9.1_02 (build b04-fcs)
Sending a gzip compressed request to Glassfish failed.
It seems like com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask not
handle the header-field Content-Encoding of a incoming webservice request.
There should be a GZipInputFilter when Content-Encoding is gzip before trying to
parse the soap-message
1) Compression Property in httpListener off:
My client sends a uncompressed request. ---> Glassfish sends
uncompressed response
2) Compression Property in httpListener on:
My client sends a uncompressed request. ---> Glassfish sends
uncompressed response
3) Compression Enabled or Disabled & Client sends compressed request
Message: Inhalt ist in Prolog nicht gestattet.
com.sun.xml.ws.protocol.soap.MessageCreationException: SOAP-Meldung konnte nicht
erstellt werden wegen Ausnahmefehler: Fehler im XML-Leseprogramm:
javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1]
Message: Inhalt ist in Prolog nicht gestattet.
at
com.sun.xml.ws.encoding.SOAPBindingCodec.decode(SOAPBindingCodec.java:292)
at
com.sun.xml.ws.transport.http.HttpAdapter.decodePacket(HttpAdapter.java:276)
at com.sun.xml.ws.transport.http.HttpAdapter.access$500(HttpAdapter.java:93)
at
com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:432)
at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:244)
at
com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:135)
at
com.sun.enterprise.webservice.Ejb3MessageDispatcher.handlePost(Ejb3MessageDispatcher.java:113)
at
com.sun.enterprise.webservice.Ejb3MessageDispatcher.invoke(Ejb3MessageDispatcher.java:87)
at
com.sun.enterprise.webservice.EjbWebServiceServlet.dispatchToEjbEndpoint(EjbWebServiceServlet.java:226)
at
com.sun.enterprise.webservice.EjbWebServiceServlet.service(EjbWebServiceServlet.java:155)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at
com.sun.enterprise.web.AdHocContextValve.invoke(AdHocContextValve.java:114)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:87)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)
at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
at
com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at
com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
Comments
Comment by jfarcand [ 04/Jul/08 ]
Re-assign to myself to see what's happening.
Comment by jfarcand [ 09/Jul/08 ]
Hum, the GZipInputFilter has been commented out for almost 5 years in GlassFish,
Tomcat 4/5/6. Needs to understand/find why
Comment by jfarcand [ 24/Jul/08 ]
After investigation, it seems we never supported GZip compressed request. Our
implementation is derived from Tomcat, and Tomcat hasn't supported it as well.
Turning that issue into an enhancement. Meanwhile, I recommend using Apache in
front of GlassFish as Apache as several mod_* that can be used to decompress the
request.
Comment by matthiasblaesing [ 10/Mar/17 ]
Together with grizzly 2.3.29 the payara fork was updated to support compressed requests. The
changeset can be found here:
https://github.com/payara/Payara/commit/4b1eb74206267f4e2ace8df4c7cde8506535396b
I'm the author of that changeset and if there is interest to merge this you can do so - I have an
OCA on file and I consider that changeset covered by it.
Generated at Wed Apr 05 10:47:25 UTC 2017 using JIRA 6.2.3#6260sha1:63ef1d6dac3f4f4d7db4c1effd405ba38ccdc558.
Herunterladen