Details
-
Bug
-
Resolution: Done
-
Minor
-
jbossws-cxf-4.1.3
-
None
-
-
Compatibility/Configuration
Description
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.