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