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.

Reply via email to