Not any real idea, given what you have seen, this is certainly a bug. Could you please raise a JIRA and attach the necessary files to reproduce the problem easily ?
On 11/8/06, Ken Berthelot <[EMAIL PROTECTED]> wrote:
This may be a servicemix problem. When I expose the same service using just xfire, it generates the correct wsdl. The problem stems from the fact that when xfire generates complex data types for classes that are in a different package (namespace) than the service, it generates a separate <xsd:schema> section in the wsdl. In the wsdl generated using servicemix, this additional section is missing from the wsdl. Guillaume, do you have any idea where the additional <xsd:schema> section could be getting dropped? Here's what xfire generates: <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://domain.edgenet.com" xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding" xmlns:tns="http://edgenet.com" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://edgenet.com"> <wsdl:types> <xsd:schema targetNamespace="http://edgenet.com" elementFormDefault="qualified" attributeFormDefault="qualified"> <xsd:element name="submitOrder"> <xsd:complexType> <xsd:sequence> <xsd:element name="in0" type="xsd:string" nillable="true" minOccurs="1" maxOccurs="1" /> <xsd:element name="in1" type="xsd:double" minOccurs="1" maxOccurs="1" /> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="submitOrderResponse"> <xsd:complexType> <xsd:sequence> <xsd:element name="out" type="ns1:Order" nillable="true" minOccurs="1" maxOccurs="1" /> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> <!----- the servicemix version does not include the following section -----> <xsd:schema targetNamespace="http://domain.edgenet.com" elementFormDefault="qualified" attributeFormDefault="qualified"> <xsd:complexType name="Order"> <xsd:sequence> <xsd:element name="description" type="xsd:string" minOccurs="0" nillable="true" /> <xsd:element name="orderNo" type="xsd:int" minOccurs="0" /> <xsd:element name="price" type="xsd:double" minOccurs="0" /> </xsd:sequence> </xsd:complexType> </xsd:schema> </wsdl:types> -----Original Message----- From: Guillaume Nodet [mailto:[EMAIL PROTECTED] Sent: Tuesday, November 07, 2006 6:28 PM To: [email protected] Subject: Re: Incorrect wsdl for jsr181 component Agreed. Maybe you could create a JIRA on xfire if you can isolate the problem from ServiceMix. On 11/7/06, Ken Berthelot <[EMAIL PROTECTED]> wrote: > Thanks. The namespace change did the trick. I'm with you in thinking there's probably an xfire bug. > > -----Original Message----- > From: Christian Schneider [mailto:[EMAIL PROTECTED] > Sent: Tuesday, November 07, 2006 3:38 PM > To: [email protected] > Subject: Re: Incorrect wsdl for jsr181 component > > Hi Ken, > > I got your example working by doing some small changes. First I made the > service and endpoint names easier and made sure they match in the http > and jsr definition. > Btw. I wonder why it worked at all with the original definitions. But > perhaps I don“t completely understand servicemix here. > > But the thing that really made the difference is that I used the > namespace of your java package in the xmlns:serviceNS. It seems like a > complex object is only included in the wsdl if it is in the same > namespace as the service itself. I think this could be a bug in > servicemix or xfire. Perhaps Guillaume can comment on this. > > Best regards > > Christian > > > <?xml version="1.0" encoding="UTF-8"?> > > <beans xmlns:http="http://servicemix.apache.org/http/1.0" > xmlns:serviceNS="http://service.edgenet.com"> > <http:endpoint service="serviceNS:OrderService" endpoint="soap" > role="consumer" locationURI="http://localhost:8080/Order" > defaultMep="http://www.w3.org/2004/08/wsdl/in-out" soap="true"/> > </beans> > > <?xml version="1.0" encoding="UTF-8"?> > > <beans xmlns:jsr181="http://servicemix.apache.org/jsr181/1.0" > xmlns:serviceNS="http://service.edgenet.com"> > <classpath> > <location>.</location> > </classpath> > <jsr181:endpoint service="serviceNS:OrderService" endpoint="soap" > pojoClass="com.edgenet.service.SubmitOrderService" > serviceInterface="com.edgenet.service.SubmitOrder" style="wrapped"/> > </beans> > > > > Ken Berthelot schrieb: > > Thanks for the response, but still no luck. I added a SubmitOrder > > interface (and had SubmitOrderService implement it) and referenced it in > > the jsr181 config: > > > > > > -- > > Christian Schneider > --- > http://www.liquid-reality.de > > > > NOTICE: This email and any attached files are confidential and intended solely for the use of the addressee. If you have received this email in error, please notify the sender and delete it immediately, without disclosing or using its contents for any purpose. Edgenet Inc. accepts no liability for any damage caused by any virus transmitted by this email. > -- Cheers, Guillaume Nodet NOTICE: This email and any attached files are confidential and intended solely for the use of the addressee. If you have received this email in error, please notify the sender and delete it immediately, without disclosing or using its contents for any purpose. Edgenet Inc. accepts no liability for any damage caused by any virus transmitted by this email.
-- Cheers, Guillaume Nodet
