[
https://issues.apache.org/jira/browse/CXF-4928?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13625162#comment-13625162
]
Pawel Ruta commented on CXF-4928:
---------------------------------
I'll provide testcase as soon as I have free time. Don't know what exactly is
causing issue, but published WS Endpoint doean't have any properties so code in
CXF is taking location of WS as "http://127.0.0.1:8983/test/WSTestImpl?wsdl"
instead of "http://127.0.0.1:8983/test/WSTestImpl"
> CXF-rt-frontend-simple - incorrect "location" attribute with "wsdl:import" tag
> ------------------------------------------------------------------------------
>
> Key: CXF-4928
> URL: https://issues.apache.org/jira/browse/CXF-4928
> Project: CXF
> Issue Type: Bug
> Components: JAX-WS Runtime
> Affects Versions: 2.6.2, 2.7.3
> Environment: OpenEJB embedded server with CXF implementation
> Reporter: Pawel Ruta
> Assignee: Freeman Fang
> Attachments: WSDLGetUtils.java
>
>
> I'm using CXF 2.6.2 implementation with OpenEJB embedded 4.5.0 for functional
> testing in my project.
> When using interface for WebService and implementation of this interface but
> without "name" and "targetNamespace" attribute in @WebServic, OpenEJB server
> publish wsdl with "wsdl:import" that has incorrect "location" attribute.
> CXF implementation with Jboss 7 behave correctly.
> Example.
> 1. Interface
> {code}
> @WebService(name = "WSTest ", targetNamespace = "http://test.com/wstest")
> public interface WSTest {
> //...
> }
> {code}
> 2. Implementation
> {code}
> @Stateless
> @WebService
> public class WSTestImpl implements WSTest {
> //...
> }
> {code}
> 3. Published wsdl by OpenEJB under http://127.0.0.1:8983/test/WSTestImpl?wsdl
> :
> {code}
> <wsdl:definitions xmlns:ns1="http://test.com/wstest"
> xmlns:ns4="http://schemas.xmlsoap.org/soap/http"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="WSTestImplService"
> targetNamespace="http://test.com/">
> <wsdl:import
> location="http://127.0.0.1:8983/test/WSTestImpl?wsdl?wsdl=TestWS.wsdl"
> namespace="http://test.com/wstest"/>
> {code}
> The "?wsdl" keyword is repeated 2 times:
> <wsdl:import
> location="http://127.0.0.1:8983/test/WSTestImpl?wsdl{color:red}?wsdl{color}=TestWS.wsdl"
> OpenEJB or CXF doesn't set any properties of the endpoint WS (like
> PUBLISHED_ENDPOINT_URL) and this cause that WSDLGetUtils.updateDoc method
> take the whole address of wsdl (http://127.0.0.1:8983/test/WSTestImpl?wsdl)
> and append to it another "?wsdl" keyword causing this bug.
> I've made quick, not elegant, fix to WSDLGetUtils.java version 2.6.2 (but
> problem exists also with newest 2.7.3). Simply cutting the end of base
> location if it has "?wsdl" substring.
> {code}
> // FIX base adres can be like http://aaa.com/Service?wsdl
> // remove wsdl parameter
> int indexOfParam = base.indexOf("?");
> if (indexOfParam != -1){
> base = base.substring(0, indexOfParam);
> }
> {code}
> Probably more elegant solution is needed.
> Attached source of the whole class WSDLGetUtils.java version 2.6.2
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira