You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Daniel Kulp (JIRA)" <ji...@apache.org> on 2013/04/25 17:50:16 UTC

[jira] [Updated] (CXF-4928) CXF-rt-frontend-simple - incorrect "location" attribute with "wsdl:import" tag

     [ https://issues.apache.org/jira/browse/CXF-4928?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp updated CXF-4928:
-----------------------------

    Fix Version/s: NeedMoreInfo
    
> 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
>             Fix For: NeedMoreInfo
>
>         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