[ 
https://issues.apache.org/jira/browse/CAMEL-4405?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13095710#comment-13095710
 ] 

Willem Jiang commented on CAMEL-4405:
-------------------------------------

"{" and "}" are not URI safe character, we did some work in Camel when it 
parsers endpoint URI to support it.
If you are passing the URI which is encoded to camel, you may face that kind of 
trouble. 
As most user don't do it, we don't get this kind of alarm before.

Back to the issue, the portName and serviceName may share difference namespace, 
we may need add options for this issue.
In CxfEndpoint spring configuration we use the endpointName for the portName, 
we also unify the options definition.
I suggest we use the endpointName for the portName, as the CXF is using the 
endpointName which is also used in WSDL2 definition.

In CXFSpringEndpoint ,there are some method for set and get these options.
 like serviceNamespace, serviceLocalName, endpointNamespace, endpointLocalName
If we move these method into CXFEndpoint, camel-cxf URI can be a good URI 
citizen. 

If we don't support the of serviceName and portName option for the camel-cxf 
URI, it will hurt the user.
So I suggest to deprecate them in Camel 2.9 and remove the support of these 
option in URI in Camel 3.0.


> Invalid URIs used by camel-cxf
> ------------------------------
>
>                 Key: CAMEL-4405
>                 URL: https://issues.apache.org/jira/browse/CAMEL-4405
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-cxf
>    Affects Versions: 2.8.0
>            Reporter: Hadrian Zbarcea
>            Assignee: Hadrian Zbarcea
>            Priority: Critical
>             Fix For: 2.9.0
>
>
> This is a nasty one.
> We currently support URIs of the following form in camel-cxf:
> {code}
> "cxf://http://localhost:9000/CxfEndpointTest/helloworld?wsdlURL=classpath:person.wsdl&serviceName={http://camel.apache.org/wsdl-first}PersonService&portName={http://camel.apache.org/wsdl-first}soap";
> {code}
> As curly brackets are not valid, URIs like above are invalid. Unfortunately I 
> suspect there are too many users who use this format now to just fix it so we 
> need to deprecate this format, find a workaround and a solution.
> The solution I am proposing is to use another parameter: targetNamespace to 
> replace the value between the curlies for the serviceName. The portName 
> should not be a QName actually either. As such, the example above would 
> become:
> {code}
> "cxf://http://localhost:9000/CxfEndpointTest/helloworld?wsdlURL=classpath:person.wsdl&targetNamespace=http://camel.apache.org/wsdl-first&serviceName=PersonService&portName=soap";
> {code}
> I will look for a workaround too, to not break existing code too much.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to