]
Thomas Szadel commented on JBWS-3741:
-------------------------------------
I tried to add "<module name="javax.servlet.api" />" in
module.xml of org.jboss.ws.jaxws-client.
Then, I got the following exception :/ (/ws/myWs is correctly resolved)
javax.servlet.ServletException: JBWS024029: Cannot obtain destination for /ws//myWs
org.jboss.wsf.stack.cxf.RequestHandlerImpl.findDestination(RequestHandlerImpl.java:166)
org.jboss.wsf.stack.cxf.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:83)
org.jboss.wsf.stack.cxf.transport.ServletHelper.callRequestHandler(ServletHelper.java:133)
org.jboss.wsf.stack.cxf.CXFServletExt.invoke(CXFServletExt.java:88)
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:286)
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:211)
javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
org.jboss.wsf.stack.cxf.CXFServletExt.service(CXFServletExt.java:136)
org.jboss.wsf.spi.deployment.WSFServlet.service(WSFServlet.java:140)
javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
WebService doesn't support "//"
--------------------------------
Key: JBWS-3741
URL:
https://issues.jboss.org/browse/JBWS-3741
Project: JBoss Web Services
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: jbossws-cxf
Affects Versions: jbossws-cxf-4.1.3
Reporter: Thomas Szadel
Assignee: Alessio Soldano
Priority: Minor
Fix For: jbossws-cxf-4.3
The WebService part of Jboss eap 6 doesn't support double slash ('//') in URI
(although JBoss 5 supports it and the Web connector also supports it).
That's to say, those 3 urls should represent the same one :
*
http://localhost:8080/ws/myWs?wsdl
*
http://localhost:8080/ws//myWs?wsdl
*
http://localhost:8080//ws/myWs?wsdl
BUT only the first one is accepted by JBoss. The others raise that stack trace:
javax.servlet.ServletException: JBWS024029: Cannot obtain destination for /ws//myWs
org.jboss.wsf.stack.cxf.RequestHandlerImpl.findDestination(RequestHandlerImpl.java:170)
org.jboss.wsf.stack.cxf.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:87)
org.jboss.wsf.stack.cxf.transport.ServletHelper.callRequestHandler(ServletHelper.java:156)
org.jboss.wsf.stack.cxf.CXFServletExt.invoke(CXFServletExt.java:87)
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:225)
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:150)
javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
org.jboss.wsf.stack.cxf.CXFServletExt.service(CXFServletExt.java:135)
org.jboss.wsf.spi.deployment.WSFServlet.service(WSFServlet.java:140)
javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
AND if I call the following URL, it works :
http://localhost:8080/./ws/myWs?wsdl
IMHO, the method org.jboss.wsf.stack.cxf.RequestHandlerImpl.findDestination should use a
"canonical path" before testing the equality.