Dan,

The annotated targetNameSpace on the interface and the
implementation class were the same:

The following is part of the generated WSDL.
Apparently, CXF treats the same string differently. As
you can see
the generated wsdl comes with the default namespace,
"ns1", and "tsn" all pointed to the same namespace.


  <?xml version="1.0" encoding="UTF-8" ?> 
- <wsdl:definitions name="videoService"
targetNamespace="http://videoservice.xx.yy.com";
xmlns:ns1="http://videoservice.xx.yy.com/";
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
xmlns:tns="http://videoservice.xx.yy.com";
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
  <wsdl:import
location="http://localhost:8080/video/services/testVideoService?wsdl=VideoService.wsdl";
namespace="http://videoservice.xx.yy.com/"; /> 
- <wsdl:binding name="videoServiceSoapBinding"
type="ns1:VideoService">
  <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"; /


-------------------------------------------------------------
From£ºDaniel Kulp
Sent£º2008-05-22 14:52:14
To£ºusers
cc£º
Subject£ºRe: XFire to CXF issue


OOOHHH....   this is a completely different issue.  
:-)

If you look, the wsdl at the first one imports the
wsdl at the second  
one and different targetNamespaces are set.  This is
caused by the  
"targetNamespace" attribute on you @WebService
annotations being  
different for the interface and the implementation.   
(or it's  
missing on one or the other)(or missing on both and
the interface is  
in a different package)

This is completely a spec compliance thing.   What CXF
is doing is per  
JWS spec.   What XFire was doing is not.   The fix is
just to make  
sure the same targetNamespace is stuck into the
@WebService annotation  
for the impl and the interface.

Dan



On May 22, 2008, at 2:46 PM, Jo wrote:

> if I use the following URL (deployed both in tomcat
> 5.5 and 6.0), I got the wrong WSDL (WebParam
missing):
>
http://localhost:8080/video/services/testVideoService?wsdl
>
> If I use the following URL, everything is alright.
>
>
http://localhost:8080/video/services/testVideoService?wsdl=videoService.wsdl
>
> Is this a new feature in CXF or not?
>
>
-------------------------------------------------------------
> From£ºDaniel Kulp
> Sent£º2008-05-22 13:44:10
> To£ºusers
> cc£º
> Subject£ºRe: XFire to CXF issue
>
>
>
> Any chance you can submit a test case?   I just
added
> your method to
> one of our test cases and the wsdl generated
> completely properly:
>
> <xs:element name="setImageResolution"
> type="tns:setImageResolution" />
> <xs:complexType name="setImageResolution">
> <xs:sequence>
> <xs:element name="width" type="xs:int" />
>  <xs:element name="height" type="xs:int" />
>  </xs:sequence>
> </xs:complexType>
> .......
> <wsdl:message name="setImageResolution">
>  <wsdl:part element="tns:setImageResolution"
> name="parameters">
>  </wsdl:part>
>  </wsdl:message>
> ......
> <wsdl:operation name="setImageResolution">
>  <wsdl:input message="tns:setImageResolution"
> name="setImageResolution"> </wsdl:input>
>  </wsdl:operation>
> ......
> <wsdl:operation name="setImageResolution">
> <soap:operation soapAction="urn:setImageResolution"
> style="document" />
> <wsdl:input name="setImageResolution">
>     <soap:body use="literal" />
> </wsdl:input>
> </wsdl:operation>
>
>
>
>
>
> On May 22, 2008, at 11:46 AM, Jo wrote:
>
>> In my java interface, I have the following
annotated
>> method:
>>
>>
>> @WebMethod(operationName = "setImageResolution",
>> action = "urn:setImageResolution")
>> @Oneway
>> public void setImageResolution(@WebParam(name =
>> "width", header = false)
>> int width, @WebParam(name = "height", header =
> false)
>> int height);
>>
>> The following is the generated WSDL with both CXF
>> 2.1.0 and 2.1.1,
>>
>> <wsdl:operation name="setImageResolution">
>> <soap:operation soapAction="urn:setImageResolution"
>> style="document" />
>> <wsdl:input name="setImageResolution">
>> <soap:body use="literal" />
>> </wsdl:input>
>> </wsdl:operation>
>>
>> WSDL generated in  XFire:
>>
>> - <xsd:element name="setImageResolution">
>> - <xsd:complexType>
>> - <xsd:sequence>
>> <xsd:element maxOccurs="1" minOccurs="1"
>> name="width" type="xsd:int" />
>> <xsd:element maxOccurs="1" minOccurs="1"
>> name="height" type="xsd:int" />
>> </xsd:sequence>
>> </xsd:complexType>
>> </xsd:element>
>>
>> - <wsdl:portType name="videoService">
>> - <wsdl:operation name="setImageResolution">
>> <wsdl:input name="setImageResolutionRequest"
>> message="tns:setImageResolutionRequest" />
>> </wsdl:operation>
>>
>> With CXF, the generated WSDL doesn't include my
>> @Webparam information? Why? and how can I generate
>> wsdl with xsd information?
>>
>>
>>
>>
>
> ---
> Daniel Kulp
> [EMAIL PROTECTED]
> http://www.dankulp.com/blog
>
>
>
>
>
>
>
>
>

---
Daniel Kulp
[EMAIL PROTECTED]
http://www.dankulp.com/blog








      

Reply via email to