If a service is published with escaped address, it cannot be accessed from the
service location in the WSDL.
------------------------------------------------------------------------------------------------------------
Key: CXF-2301
URL: https://issues.apache.org/jira/browse/CXF-2301
Project: CXF
Issue Type: Bug
Components: Transports
Affects Versions: 2.1.3
Environment: Windows XP SP3, JDK 1.5.0_06
Reporter: Tong Wang
I publish web services to Tomcat following the guide at
http://cwiki.apache.org/CXF20DOC/servlet-transport.html.
There is an example,
Endpoint.publish("/Greeter", new GreeterImpl());
If the address contains invalid characters, it need to be escaped.
For example,
Endpoint.publish("/Greet%20er", new GreeterImpl());
And in the WSDL, the service location should be
<soap:address location="http://localhost:9090/context/Greet%20er" />
I test it with CXF 2.1.3 and the result is as follows.
1. When we publish a service, a destination
(org.apache.cxf.transport.servlet.ServletDestination) is registered with the
address as a key.
For example, Endpoint.publish("/Greet%20er", new GreeterImpl());
The key will be "/Greet%20er".
2. The service location in the WSDL is the same as the address when we publish
the service.
For example, Endpoint.publish("/Greet%20er", new GreeterImpl());
The service location in the WSDL will be <soap:address
location="http://localhost:9090/context/Greet%20er" />
3. When we invoke the service, we will get the destination by the key, which is
request.getPathInfo().
For example, if we open url "http://localhost:9090/context/Greet%20er"
The key will be "/Greet er". So we cannot get the correct destination which was
registered with key "/Greet%20er".
1 and 2 are correct and 3 is the problem.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.