On Fri, May 8, 2009 at 1:03 PM,  <[email protected]> wrote:
>
> This is my fixed WSDL. I have to change several things in order to use
> WSDLToJava tool.
>
> **I have added xmlns:tns1="http://ns1"; in the wsdl:definitions
> **I have added targetNamespace="http://ns1"; in the first schema
> ** I have added tns1:  before all types defined int the first schema. For
> example type="tns1:device"
>
> It seems that WSDLToJava tool requires a compulsory targetNamespace in the
> schemas in order to find classes.
>
>
>
>
>
>
>
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions name="SensorNetworkManagementServiceService"
> targetNamespace="http://sca.sensornetworkmanagement.telvent.com/";
> xmlns:tns="http://sca.sensornetworkmanagement.telvent.com/";
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
> xmlns:xs="http://www.w3.org/2001/XMLSchema";
> xmlns:SOAP="http://schemas.xmlsoap.org/wsdl/soap/";
> xmlns:SOAP11="http://schemas.xmlsoap.org/wsdl/soap/";
> xmlns:tns1="http://ns1";>
>   <wsdl:types>
>     <xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema";
> targetNamespace="http://ns1"; >
>                 <xs:complexType
> name="networkComponent"><xs:sequence><xs:element maxOccurs="unbounded"
> minOccurs="0" name="comprises" nillable="true"
> type="tns1:networkComponent"/></xs:sequence></xs:complexType>
>                 <xs:complexType
> name="device"><xs:complexContent><xs:extension
> base="tns1:networkComponent"><xs:sequence><xs:element minOccurs="0"
> name="brand" type="xs:string"/><xs:element name="hardwareId"
> type="xs:int"/><xs:element minOccurs="0" name="manufacturer"
> type="xs:string"/><xs:element maxOccurs="unbounded" minOccurs="0"
> name="measures" nillable="true" type="tns1:parameter"/><xs:element
> name="model"
> type="xs:int"/></xs:sequence></xs:extension></xs:complexContent></xs:complexType>
>                 <xs:complexType name="parameter"><xs:sequence><xs:element
> minOccurs="0" name="device" type="tns1:device"/><xs:element
> maxOccurs="unbounded" minOccurs="0" name="tests" nillable="true"
> type="tns1:dataTest"/></xs:sequence></xs:complexType>
>                 <xs:complexType name="dataTest"><xs:sequence><xs:element
> minOccurs="0" name="parameter"
> type="tns1:parameter"/></xs:sequence></xs:complexType>
>                 <xs:complexType final="#all"
> name="deviceArray"><xs:sequence><xs:element maxOccurs="unbounded"
> minOccurs="0" name="item" nillable="true"
> type="tns1:device"/></xs:sequence></xs:complexType>
>         </xs:schema>
>
>     <xs:schema attributeFormDefault="qualified"
> elementFormDefault="unqualified"
> targetNamespace="http://sca.sensornetworkmanagement.telvent.com/";
> xmlns:xs="http://www.w3.org/2001/XMLSchema";>
>
>     <xs:import namespace="http://ns1"/>
>             <xs:element name="getDeviceList">
>                     <xs:complexType/>
>             </xs:element>
>
>             <xs:element name="getDeviceListResponse">
>                     <xs:complexType>
>                     <xs:sequence>
>                     <xs:element maxOccurs="unbounded" minOccurs="0"
> name="return" nillable="true" type="tns1:device"/>
>                     </xs:sequence>
>                     </xs:complexType>
>             </xs:element>
>     </xs:schema>
>   </wsdl:types>
>   <wsdl:message name="getDeviceList">
>     <wsdl:part name="getDeviceList" element="tns:getDeviceList">
>     </wsdl:part>
>   </wsdl:message>
>   <wsdl:message name="getDeviceListResponse">
>     <wsdl:part name="getDeviceListResponse"
> element="tns:getDeviceListResponse">
>     </wsdl:part>
>   </wsdl:message>
>   <wsdl:portType name="SensorNetworkManagementService">
>     <wsdl:operation name="getDeviceList">
>       <wsdl:input message="tns:getDeviceList">
>     </wsdl:input>
>       <wsdl:output message="tns:getDeviceListResponse">
>     </wsdl:output>
>     </wsdl:operation>
>   </wsdl:portType>
>   <wsdl:binding name="SensorNetworkManagementServiceBinding"
> type="tns:SensorNetworkManagementService">
>     <SOAP:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
>     <wsdl:operation name="getDeviceList">
>       <SOAP:operation/>
>       <wsdl:input>
>         <SOAP:body use="literal"/>
>       </wsdl:input>
>       <wsdl:output>
>         <SOAP:body use="literal"/>
>       </wsdl:output>
>     </wsdl:operation>
>   </wsdl:binding>
>   <wsdl:service name="SensorNetworkManagementServiceService">
>     <wsdl:port name="SensorNetworkManagementServicePort"
> binding="tns:SensorNetworkManagementServiceBinding">
>       <SOAP:address
> location="http://192.168.3.15:8085/SensorNetworkManagementComponent"/>
>     </wsdl:port>
>   </wsdl:service>
> </wsdl:definitions>
>
>
>
>
> Un saludo.
> Santiago Miguel Aranda Rojas
> Telvent Interactiva
> Extension: 35999
>
>
> [email protected]
> santiago.aranda
> 08/05/2009 13:13
> Por favor, responda a user
> Para: [email protected]
> cc:
> Asunto: Re: Wrong generated WSDL
>
>
>
>
> This my WSDL. It is easier now but it is not working again. I mean I can not
> use it to generate Java code for a simple client with WSDLTojava tool. When
> I try this I have this error "Type device missing". Device is one of my
> classes. When I check with WSDL Eclipse tool and I have to fix manually. But
> I don´t know what is the best way.  I would like Tuscany generates a WSDL so
> I could use WSDLToJava tool.
>
> I didn´t understand your sample. This step And a package-info.java. What do
> you mean? May I add this annotation over the package?? or add a new
> "package-info" class. Could you send me your sample?'
>
> @javax.xml.bind.annotation.XmlSchema(namespace="http://test";)
> package helloworld;
>
>
> Thank you very much
>
>
>
> Un saludo.
> Santiago Miguel Aranda Rojas
> Telvent Interactiva
> Extension: 35999
>
>
> Simon Laws <[email protected]>
> Simon Laws
> 07/05/2009 17:50
> Por favor, responda a user
> Para: [email protected]
> cc:
> Asunto: Re: Wrong generated WSDL
>
>
>
>
> So what I find with a quick test is the following.
>
> With a bean..
>
> package helloworld;
>
> public class ABean {
>
>   protected String field1;
>   protected String field2;
>
> An a service inteface..
>
> public interface HelloWorldService {
>
>   public String getGreetings(String name);
>   public String getGreetingsBean(ABean bean);
>   public String getGreetingsBeanArray(ABean[] bean);
> }
>
> And a package-info.java
>
> @javax.xml.bind.annotation.XmlSchema(namespace="http://test";)
> package helloworld;
>
> I get the following generated WSDL types from Tuscany...
>
> <wsdl:types>
>   <xs:schema targetNamespace="http://test"; version="1.0"
>       xmlns:tns="http://test"; xmlns:xs="http://www.w3.org/2001/XMLSchema";>
>       <xs:complexType name="aBean">
>           <xs:sequence>
>               <xs:element minOccurs="0" name="field1" type="xs:string" />
>               <xs:element minOccurs="0" name="field2" type="xs:string" />
>           </xs:sequence>
>       </xs:complexType>
>       <xs:complexType final="#all" name="aBeanArray">
>           <xs:sequence>
>               <xs:element maxOccurs="unbounded" minOccurs="0"
>                   name="item" nillable="true" type="tns:aBean" />
>           </xs:sequence>
>       </xs:complexType>
>   </xs:schema>
>   <xs:schema attributeFormDefault="qualified"
>       elementFormDefault="unqualified" targetNamespace="http://helloworld/";
>       xmlns:ns0="http://test"; xmlns:xs="http://www.w3.org/2001/XMLSchema";>
>       <xs:import namespace="http://test"; />
>       <xs:element name="getGreetingsBean">
>           <xs:complexType>
>               <xs:sequence>
>                   <xs:element minOccurs="0" name="arg0"
>                       nillable="true" type="ns0:aBean" />
>               </xs:sequence>
>           </xs:complexType>
>       </xs:element>
>       <xs:element name="getGreetings">
>           <xs:complexType>
>               <xs:sequence>
>                   <xs:element minOccurs="0" name="arg0"
>                       nillable="true" type="xs:string" />
>               </xs:sequence>
>           </xs:complexType>
>       </xs:element>
>       <xs:element name="getGreetingsResponse">
>           <xs:complexType>
>               <xs:sequence>
>                   <xs:element minOccurs="0" name="return"
>                       nillable="true" type="xs:string" />
>               </xs:sequence>
>           </xs:complexType>
>       </xs:element>
>       <xs:element name="getGreetingsBeanResponse">
>           <xs:complexType>
>               <xs:sequence>
>                   <xs:element minOccurs="0" name="return"
>                       nillable="true" type="xs:string" />
>               </xs:sequence>
>           </xs:complexType>
>       </xs:element>
>       <xs:element name="getGreetingsBeanArrayResponse">
>           <xs:complexType>
>               <xs:sequence>
>                   <xs:element minOccurs="0" name="return"
>                       nillable="true" type="xs:string" />
>               </xs:sequence>
>           </xs:complexType>
>       </xs:element>
>       <xs:element name="getGreetingsBeanArray">
>           <xs:complexType>
>               <xs:sequence>
>                   <xs:element maxOccurs="unbounded"
>                       minOccurs="0" name="arg0" nillable="true"
> type="ns0:aBean" />
>               </xs:sequence>
>           </xs:complexType>
>       </xs:element>
>   </xs:schema>
> </wsdl:types>
>
>
> Which validates for me. Haven't actually tries generating a client
> from it but it looks OK. So if you can live with this this should get
> you going. I'm not sure how to get vectors to work.
>
> We do need a JIRA to cover this very common case as it's a real
> gotcha. I note that https://issues.apache.org/jira/browse/TUSCANY-2853
> was actually closed when in reality we just use a work around. I'll
> reopen it and add some notes.
>
> Simon
>
>

Hi

Yes, the package-info.java is a separate file. I just committed the
example I was using
(http://svn.apache.org/repos/asf/tuscany/branches/sca-java-1.x/itest/wsdlgen/src/main/java/helloworld/package-info.java).
If you add a package-info.java file for you package and map the
package to a namspace, using
@javax.xml.bind.annotation.XmlSchema(namespace="your namespace goes
here") then Tuscany should generate the WSDL for you using this
namespace rather than no namespace which is what's causing the
problem.

Simon

Reply via email to