Mantis Bugtracker
  

Viewing Issue Advanced Details Jump to Notes ] View Simple ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0002022 [Resin] major always 09-22-07 07:56 09-25-07 09:53
Reporter stbu View Status public  
Assigned To
Priority normal Resolution fixed Platform
Status closed   OS
Projection none   OS Version
ETA none Fixed in Version 3.1.3 Product Version 3.1.3
  Product Build
Summary 0002022: JAX-WS: SOAP Requests from Resin to a Web Service Provider uses wrong Content-Type Header
Description I have deployed a small sample application on Resin-pro-3.1.s070917 (Sun JDK 6, Linux) that is consuming a Web Service which is provided on a Sun Java System Application Server 9.1 from Project GlassFish V2 UR1 b01.

The Web Service is used in a JSP and the resin-web.xml is configured to contact the Web Service at:

  <web-service-client jndi-name="soap/AddNumbersService">
    <url>soap:http://192.168.1.100:8080/wsprovider-javaee/addnum</url> [^]
    <interface>consumer.AddNumbersService</interface>
  </web-service-client>


The endpoint http://192.168.1.100:8080/wsprovider-javaee/addnum [^]
is running on Sun Java System Application Server 9.1 from Project GlassFish V2 UR1 b01.


When the JSP is called, Resin shows the following Servlet Exception:

500 Servlet Exception
java.io.IOException: Server returned HTTP response code: 415 for URL: http://192.168.1.100:8080/wsprovider-javaee/addnum [^]
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1241)
    at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:373)
    at com.caucho.soap.skeleton.AbstractAction.invoke(AbstractAction.java:641)
    at com.caucho.soap.skeleton.DirectSkeleton.invoke(DirectSkeleton.java:287)
    at com.caucho.soap.skeleton.DirectSkeleton.invoke(DirectSkeleton.java:273)
    at com.caucho.soap.service.ServiceImplInvocationHandler.invoke(ServiceImplInvocationHandler.java:68)
    at $Proxy9.add(Unknown Source)
    at _jsp._index__jsp._jspService(index.jsp:16)
    at com.caucho.jsp.JavaPage.service(JavaPage.java:61)
    at com.caucho.jsp.Page.pageservice(Page.java:578)
    at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:192)
    at com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:160)
    at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:177)
    at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:241)
    at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:268)
    at com.caucho.server.port.TcpConnection.run(TcpConnection.java:576)
    at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:685)
    at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:607)
    at java.lang.Thread.run(Thread.java:619)


Enabled debug log shows:

[14:25:22.028] /wsconsumer-javaee FINEST com.caucho.jaxb.JAXBUtil (introspectClass) Introspecting class consumer.AddNumbersService
[14:25:22.031] /wsconsumer-javaee FINEST com.caucho.jaxb.JAXBUtil (introspectMethod) Introspecting method add
[14:25:22.032] /wsconsumer-javaee FINEST com.caucho.jaxb.JAXBUtil (introspectType) Introspecting type int
[14:25:22.037] /wsconsumer-javaee FINEST com.caucho.jaxb.JAXBUtil (introspectType) Introspecting type int
[14:25:22.037] /wsconsumer-javaee FINEST com.caucho.jaxb.JAXBUtil (introspectType) Introspecting type int
[14:25:22.316] /wsconsumer-javaee FINER com.caucho.soap.skeleton.DirectSkeleton (addAction) Adding DocumentWrappedAction[add] to DirectSkeleton[interface consumer.AddNumbersService]
[14:25:22.429] /wsconsumer-javaee WARNING com.caucho.server.webapp.ErrorPageManager (sendServletError) java.lang.reflect.UndeclaredThrowableException
[14:25:22.429] at $Proxy9.add(Unknown Source)
[14:25:22.429] at _jsp._index__jsp._jspService(_index__jsp.java:50)
[14:25:22.429] at com.caucho.jsp.JavaPage.service(JavaPage.java:61)
[14:25:22.429] at com.caucho.jsp.Page.pageservice(Page.java:578)
[14:25:22.429] at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:192)
[14:25:22.429] at com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:160)
[14:25:22.429] at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:177)
[14:25:22.429] at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:241)
[14:25:22.429] at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:268)
[14:25:22.429] at com.caucho.server.port.TcpConnection.run(TcpConnection.java:576)
[14:25:22.429] at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:685)
[14:25:22.429] at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:607)
[14:25:22.429] at java.lang.Thread.run(Thread.java:619)
[14:25:22.429] Caused by: java.io.IOException: Server returned HTTP response code: 415 for URL: http://192.168.1.100:8080/wsprovider-javaee/addnum [^]
[14:25:22.429] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[14:25:22.429] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
[14:25:22.429] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
[14:25:22.429] at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
[14:25:22.429] at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1296)
[14:25:22.429] at java.security.AccessController.doPrivileged(Native Method)
[14:25:22.429] at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1290)
[14:25:22.429] at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:944)
[14:25:22.429] at com.caucho.soap.skeleton.AbstractAction.invoke(AbstractAction.java:642)
[14:25:22.429] at com.caucho.soap.skeleton.DirectSkeleton.invoke(DirectSkeleton.java:287)
[14:25:22.429] at com.caucho.soap.skeleton.DirectSkeleton.invoke(DirectSkeleton.java:273)
[14:25:22.429] at com.caucho.soap.service.ServiceImplInvocationHandler.invoke(ServiceImplInvocationHandler.java:68)
[14:25:22.429] ... 13 more
[14:25:22.429] Caused by: java.io.IOException: Server returned HTTP response code: 415 for URL: http://192.168.1.100:8080/wsprovider-javaee/addnum [^]
[14:25:22.429] at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1241)
[14:25:22.429] at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:373)
[14:25:22.429] at com.caucho.soap.skeleton.AbstractAction.invoke(AbstractAction.java:641)
[14:25:22.429] ... 16 more



The log file of the Web Service Provider on Sun Java System Application Server 9.1 from Project GlassFish V2 shows this:

com.sun.xml.ws.server.UnsupportedMediaException: Unsupported Content-Type: application/x-www-form-urlencoded Supported ones are: [text/xml]
        at com.sun.xml.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:130)
        at com.sun.xml.ws.encoding.SOAPBindingCodec.decode(SOAPBindingCodec.java:294)
        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.JAXWSServlet.doPost(JAXWSServlet.java:159)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
        at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:290)
        at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
        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:270)
        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:339)
        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:261)
        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:212)
        at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:361)
        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)
        
        
Using a Filter to log Request/Response shows this:

Request headers:
 User-Agent = Java/1.6.0_02
 Host = localhost:8090
 Accept = text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
 Connection = keep-alive
 Content-type = application/x-www-form-urlencoded
 Content-Length = 268
Request body:
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header></soapenv:Header><soapenv:Body><m:add [^] xmlns:m="http://consumer/"><arg0>600</arg0><arg1>66</arg1></m:add></soapenv:Body></soapenv:Envelope> [^]


So, the message from Glassfish
 Unsupported Content-Type: application/x-www-form-urlencoded Supported ones are: [text/xml]
makes sense as SOAP Requests should use "test/xml" as Content-Type that also states:

http://www.caucho.com/resin-javadoc/constant-values.html#javax.xml.soap.SOAPConstants.SOAP_1_1_CONTENT_TYPE [^]
<..>
public static final java.lang.String SOAP_1_1_CONTENT_TYPE "text/xml"
<..>
Steps To Reproduce
Additional Information
Attached Files

- Relationships

- Notes
(0002310)
emil
09-25-07 09:53

Thanks for the detailed bug report!
 

- Issue History
Date Modified Username Field Change
09-22-07 07:56 stbu New Issue
09-22-07 07:56 stbu Issue Monitored: stbu
09-25-07 09:53 emil Status new => closed
09-25-07 09:53 emil Note Added: 0002310
09-25-07 09:53 emil Resolution open => fixed
09-25-07 09:53 emil Fixed in Version  => 3.1.3


Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
30 total queries executed.
26 unique queries executed.
Powered by Mantis Bugtracker