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