You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Maxim Solodovnik <so...@gmail.com> on 2015/09/19 16:12:17 UTC

Java-first incomplete wsdl generated

Hello All,

I'm trying to create SOAP/JSON web service using java-first approach.
I would like to minimize xml files, interfaces being created and other
stuff not related to the service code.
The application is spring based, endpoint is defined here [1]
webservice is defined here [2]

the issue is: resulting wsdl contains no type definitions, no method
signatures and looks like follows:

<wsdl:operation name="add">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="add">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="addResponse">
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="ServiceException">
<soap:fault name="ServiceException" use="literal"/>
</wsdl:fault>
</wsdl:operation>

I have no targetNamespace definitions in annotations, how can I fix wsdl
being generated?

Thanks in advance!


[1]
https://github.com/apache/openmeetings/blob/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml#L290
[2]
https://github.com/apache/openmeetings/blob/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java


-- 
WBR
Maxim aka solomax

Re: Java-first incomplete wsdl generated

Posted by Maxim Solodovnik <so...@gmail.com>.
Thanks a million!
you saved me! :)))

On Wed, Oct 28, 2015 at 3:52 AM, Daniel Kulp <dk...@apache.org> wrote:

> The WSDL is correct for what you provided.   In the
> applicationContext.xml, you have:
>
> <jaxws:endpoint id="testServiceWS" address="/TestService"
>                 implementor="#testWebService"
>                 endpointName="TestServiceEndpoint"
>                 serviceName="TestService"
>                 />
>
> ServiceName and endpointName are QNames.   They need a namespace.  Since
> you don’t have a prefix on them, they are using the default namespace for
> your application context (which is the spring namespace).   The the wsdl
> you are seeing is the wsdl for the concrete part (the binding and the
> service) which are both in that namespace.   The portType part of the wsdl
> is in a different namespace (derived from the package) and is thus include
> via the wsdl:include line.
>
> The easiest way to fix it would be to remove those two attributes from
> there and add a @WebService annotation on the impl bean that provides the
> names.   Alternatively, define the namespace in the applicationCOntext.xml
> and prefix those names correctly.
>
> Dan
>
>
>
> > On Oct 27, 2015, at 2:33 PM, Maxim Solodovnik <so...@gmail.com>
> wrote:
> >
> > I just have created quickstart (CXF 3.1.3)
> > to check this out:
> >
> > git clone https://github.com/solomax/implonly
> > mvn jetty:run
> >
> > access http://localhost:8080/services/TestService?wsdl
> >
> > the code is extremely simple:
> >
> https://github.com/solomax/implonly/blob/master/src/main/java/com/mycompany/javafirst/TestWebService.java
> > WSDL don't look like WSDL :(((
> > what I'm I doing wrong?
> >
> > On Sat, Sep 19, 2015 at 10:38 PM, Maxim Solodovnik <solomax666@gmail.com
> >
> > wrote:
> >
> >> forgot to mention: CXF 3.1.2
> >>
> >> On Sat, Sep 19, 2015 at 8:12 PM, Maxim Solodovnik <solomax666@gmail.com
> >
> >> wrote:
> >>
> >>> Hello All,
> >>>
> >>> I'm trying to create SOAP/JSON web service using java-first approach.
> >>> I would like to minimize xml files, interfaces being created and other
> >>> stuff not related to the service code.
> >>> The application is spring based, endpoint is defined here [1]
> >>> webservice is defined here [2]
> >>>
> >>> the issue is: resulting wsdl contains no type definitions, no method
> >>> signatures and looks like follows:
> >>>
> >>> <wsdl:operation name="add">
> >>> <soap:operation soapAction="" style="document"/>
> >>> <wsdl:input name="add">
> >>> <soap:body use="literal"/>
> >>> </wsdl:input>
> >>> <wsdl:output name="addResponse">
> >>> <soap:body use="literal"/>
> >>> </wsdl:output>
> >>> <wsdl:fault name="ServiceException">
> >>> <soap:fault name="ServiceException" use="literal"/>
> >>> </wsdl:fault>
> >>> </wsdl:operation>
> >>>
> >>> I have no targetNamespace definitions in annotations, how can I fix
> wsdl
> >>> being generated?
> >>>
> >>> Thanks in advance!
> >>>
> >>>
> >>> [1]
> >>>
> https://github.com/apache/openmeetings/blob/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml#L290
> >>> [2]
> >>>
> https://github.com/apache/openmeetings/blob/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
> >>>
> >>>
> >>> --
> >>> WBR
> >>> Maxim aka solomax
> >>>
> >>
> >>
> >>
> >> --
> >> WBR
> >> Maxim aka solomax
> >>
> >
> >
> >
> > --
> > WBR
> > Maxim aka solomax
>
> --
> Daniel Kulp
> dkulp@apache.org - http://dankulp.com/blog
> Talend Community Coder - http://coders.talend.com
>
>


-- 
WBR
Maxim aka solomax

Re: Java-first incomplete wsdl generated

Posted by Daniel Kulp <dk...@apache.org>.
The WSDL is correct for what you provided.   In the applicationContext.xml, you have:

<jaxws:endpoint id="testServiceWS" address="/TestService"
                implementor="#testWebService"
                endpointName="TestServiceEndpoint"
                serviceName="TestService"
                />

ServiceName and endpointName are QNames.   They need a namespace.  Since you don’t have a prefix on them, they are using the default namespace for your application context (which is the spring namespace).   The the wsdl you are seeing is the wsdl for the concrete part (the binding and the service) which are both in that namespace.   The portType part of the wsdl is in a different namespace (derived from the package) and is thus include via the wsdl:include line.

The easiest way to fix it would be to remove those two attributes from there and add a @WebService annotation on the impl bean that provides the names.   Alternatively, define the namespace in the applicationCOntext.xml and prefix those names correctly.

Dan



> On Oct 27, 2015, at 2:33 PM, Maxim Solodovnik <so...@gmail.com> wrote:
> 
> I just have created quickstart (CXF 3.1.3)
> to check this out:
> 
> git clone https://github.com/solomax/implonly
> mvn jetty:run
> 
> access http://localhost:8080/services/TestService?wsdl
> 
> the code is extremely simple:
> https://github.com/solomax/implonly/blob/master/src/main/java/com/mycompany/javafirst/TestWebService.java
> WSDL don't look like WSDL :(((
> what I'm I doing wrong?
> 
> On Sat, Sep 19, 2015 at 10:38 PM, Maxim Solodovnik <so...@gmail.com>
> wrote:
> 
>> forgot to mention: CXF 3.1.2
>> 
>> On Sat, Sep 19, 2015 at 8:12 PM, Maxim Solodovnik <so...@gmail.com>
>> wrote:
>> 
>>> Hello All,
>>> 
>>> I'm trying to create SOAP/JSON web service using java-first approach.
>>> I would like to minimize xml files, interfaces being created and other
>>> stuff not related to the service code.
>>> The application is spring based, endpoint is defined here [1]
>>> webservice is defined here [2]
>>> 
>>> the issue is: resulting wsdl contains no type definitions, no method
>>> signatures and looks like follows:
>>> 
>>> <wsdl:operation name="add">
>>> <soap:operation soapAction="" style="document"/>
>>> <wsdl:input name="add">
>>> <soap:body use="literal"/>
>>> </wsdl:input>
>>> <wsdl:output name="addResponse">
>>> <soap:body use="literal"/>
>>> </wsdl:output>
>>> <wsdl:fault name="ServiceException">
>>> <soap:fault name="ServiceException" use="literal"/>
>>> </wsdl:fault>
>>> </wsdl:operation>
>>> 
>>> I have no targetNamespace definitions in annotations, how can I fix wsdl
>>> being generated?
>>> 
>>> Thanks in advance!
>>> 
>>> 
>>> [1]
>>> https://github.com/apache/openmeetings/blob/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml#L290
>>> [2]
>>> https://github.com/apache/openmeetings/blob/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
>>> 
>>> 
>>> --
>>> WBR
>>> Maxim aka solomax
>>> 
>> 
>> 
>> 
>> --
>> WBR
>> Maxim aka solomax
>> 
> 
> 
> 
> -- 
> WBR
> Maxim aka solomax

-- 
Daniel Kulp
dkulp@apache.org - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com


Re: Java-first incomplete wsdl generated

Posted by Maxim Solodovnik <so...@gmail.com>.
I just have created quickstart (CXF 3.1.3)
to check this out:

git clone https://github.com/solomax/implonly
mvn jetty:run

access http://localhost:8080/services/TestService?wsdl

the code is extremely simple:
https://github.com/solomax/implonly/blob/master/src/main/java/com/mycompany/javafirst/TestWebService.java
WSDL don't look like WSDL :(((
what I'm I doing wrong?

On Sat, Sep 19, 2015 at 10:38 PM, Maxim Solodovnik <so...@gmail.com>
wrote:

> forgot to mention: CXF 3.1.2
>
> On Sat, Sep 19, 2015 at 8:12 PM, Maxim Solodovnik <so...@gmail.com>
> wrote:
>
>> Hello All,
>>
>> I'm trying to create SOAP/JSON web service using java-first approach.
>> I would like to minimize xml files, interfaces being created and other
>> stuff not related to the service code.
>> The application is spring based, endpoint is defined here [1]
>> webservice is defined here [2]
>>
>> the issue is: resulting wsdl contains no type definitions, no method
>> signatures and looks like follows:
>>
>> <wsdl:operation name="add">
>> <soap:operation soapAction="" style="document"/>
>> <wsdl:input name="add">
>> <soap:body use="literal"/>
>> </wsdl:input>
>> <wsdl:output name="addResponse">
>> <soap:body use="literal"/>
>> </wsdl:output>
>> <wsdl:fault name="ServiceException">
>> <soap:fault name="ServiceException" use="literal"/>
>> </wsdl:fault>
>> </wsdl:operation>
>>
>> I have no targetNamespace definitions in annotations, how can I fix wsdl
>> being generated?
>>
>> Thanks in advance!
>>
>>
>> [1]
>> https://github.com/apache/openmeetings/blob/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml#L290
>> [2]
>> https://github.com/apache/openmeetings/blob/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
>>
>>
>> --
>> WBR
>> Maxim aka solomax
>>
>
>
>
> --
> WBR
> Maxim aka solomax
>



-- 
WBR
Maxim aka solomax

Re: Java-first incomplete wsdl generated

Posted by Maxim Solodovnik <so...@gmail.com>.
forgot to mention: CXF 3.1.2

On Sat, Sep 19, 2015 at 8:12 PM, Maxim Solodovnik <so...@gmail.com>
wrote:

> Hello All,
>
> I'm trying to create SOAP/JSON web service using java-first approach.
> I would like to minimize xml files, interfaces being created and other
> stuff not related to the service code.
> The application is spring based, endpoint is defined here [1]
> webservice is defined here [2]
>
> the issue is: resulting wsdl contains no type definitions, no method
> signatures and looks like follows:
>
> <wsdl:operation name="add">
> <soap:operation soapAction="" style="document"/>
> <wsdl:input name="add">
> <soap:body use="literal"/>
> </wsdl:input>
> <wsdl:output name="addResponse">
> <soap:body use="literal"/>
> </wsdl:output>
> <wsdl:fault name="ServiceException">
> <soap:fault name="ServiceException" use="literal"/>
> </wsdl:fault>
> </wsdl:operation>
>
> I have no targetNamespace definitions in annotations, how can I fix wsdl
> being generated?
>
> Thanks in advance!
>
>
> [1]
> https://github.com/apache/openmeetings/blob/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml#L290
> [2]
> https://github.com/apache/openmeetings/blob/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
>
>
> --
> WBR
> Maxim aka solomax
>



-- 
WBR
Maxim aka solomax