axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Barry <m...@paulbarry.com>
Subject Re: Encountered illegal extension element 'types' in the context of a 'javax.wsdl.Definition'. Extension elements must be in a namespace other than WSDL's.:
Date Sat, 29 Oct 2005 15:08:38 GMT
The WSDL is generated by axis.  It comes from me going to:

http://localhost/axis/services/MyService?wsdl

How do I get axis to generate it with wsdl:types instead of just types?

On 10/28/05, Anne Thomas Manes <atmanes@gmail.com> wrote:
> You must namespace qualify the element:
>
>          <wsdl:types>
>
>                 not
>
>          <types>
>
>  Anne
>
>
> On 10/27/05, Paul Barry <mail@paulbarry.com> wrote:
> > Hello,
> >
> > I am trying to run wsdl2java against my WSDL, but I am getting this error:
> >
> > WSDLException (at /wsdl:definitions/types): faultCode=INVALID_WSDL:
> > Encountered illegal extension element 'types' in the context of a
> > 'javax.wsdl.Definition'. Extension elements must be in a namespace
> > other than WSDL's.:
> >     at
> com.ibm.wsdl.xml.WSDLReaderImpl.parseExtensibilityElement(Unknown
> Source)
> >     at com.ibm.wsdl.xml.WSDLReaderImpl.parseDefinitions
> (Unknown Source)
> >     at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown
> Source)
> >     at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown
> Source)
> >     at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown
> Source)
> >     at
> org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:516)
> >     at
> org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:495)
> >     at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run
> (Parser.java:361)
> >     at java.lang.Thread.run(Unknown Source)
> >
> > Any idea what causes this problem?  I am using a very basic service
> > and the WSDL is generated by axis.  Here is my WSDL:
> >
> > <?xml version=" 1.0" encoding="UTF-8"?>
> > <wsdl:definitions
> > xmlns:impl="http://localhost/axis/services/MyService"
> > xmlns:intf=" http://localhost/axis/services/MyService"
> > xmlns:apachesoap="http://xml.apache.org/xml-soap"
> > xmlns:wsdlsoap=" http://schemas.xmlsoap.org/wsdl/soap/"
> > xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
> > xmlns:xsd=" http://www.w3.org/2001/XMLSchema"
> > xmlns:tns1="urn:MyService"
> > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> > targetNamespace="
> http://localhost/axis/services/MyService">
> > <!--WSDL created by Apache Axis version: 1.2.1
> > Built on Jun 14, 2005 (09:15:57 EDT)-->
> > <types>
> >   <schema xmlns=" http://www.w3.org/2001/XMLSchema"
> > targetNamespace="urn:MyService">
> >    <import
> namespace="http://schemas.xmlsoap.org/soap/encoding/"/ >
> >    <complexType name="MyBean">
> >     <sequence>
> >      <element name="name" nillable="true" type="xsd:string"/>
> >     </sequence>
> >
> >    </complexType>
> >   </schema>
> > </types>
> >
> >    <wsdl:message name="getMyBeanResponse">
> >
> >       <wsdl:part name="getMyBeanReturn" type="tns1:MyBean"/>
> >
> >    </wsdl:message>
> >
> >    <wsdl:message name="getMyBeanRequest">
> >
> >    </wsdl:message>
> >
> >    <wsdl:portType name="MyService">
> >
> >       <wsdl:operation name="getMyBean">
> >
> >          <wsdl:input name="getMyBeanRequest"
> message="impl:getMyBeanRequest"/>
> >
> >          <wsdl:output name="getMyBeanResponse"
> > message="impl:getMyBeanResponse"/>
> >
> >       </wsdl:operation>
> >
> >    </wsdl:portType>
> >
> >    <wsdl:binding name="MyServiceSoapBinding" type="impl:MyService">
> >
> >       <wsdlsoap:binding style="rpc"
> > transport="http://schemas.xmlsoap.org/soap/http"/>
> >
> >       <wsdl:operation name="getMyBean">
> >
> >          <wsdlsoap:operation soapAction=""/>
> >
> >          <wsdl:input name="getMyBeanRequest">
> >
> >             <wsdlsoap:body use="encoded"
> > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/
> "
> > namespace="http://paulbarry.com"/>
> >
> >          </wsdl:input>
> >
> >          <wsdl:output name="getMyBeanResponse">
> >
> >             <wsdlsoap:body use="encoded"
> > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> > namespace="http://localhost/axis/services/MyService"/ >
> >
> >          </wsdl:output>
> >
> >       </wsdl:operation>
> >
> >    </wsdl:binding>
> >
> >    <wsdl:service name="MyServiceService">
> >
> >       <wsdl:port name="MyService"
> binding="impl:MyServiceSoapBinding">
> >
> >          <wsdlsoap:address
> location="http://localhost/axis/services/MyService"/>
> >
> >       </wsdl:port>
> >
> >    </wsdl:service>
> >
> > </wsdl:definitions>
> >
> > The classes involved are very basic.  I have this bean:
> >
> > package com.paulbarry;
> >
> > public class MyBean {
> >
> >     private String name;
> >
> >     public MyBean() {}
> >     public MyBean(String name) {
> >         this.name = name;
> >     }
> >
> >     public String getName() {
> >         return name;
> >     }
> >
> >     public void setName(String name) {
> >         this.name = name;
> >     }
> >
> >
> > }
> >
> > And this service:
> >
> > package com.paulbarry;
> >
> > public class MyService {
> >
> >     public MyBean getMyBean() {
> >         return new MyBean("My Bean");
> >     }
> >
> > }
> >
> > I have this client, which works perfectly fine:
> >
> > package com.paulbarry;
> >
> > import javax.xml.namespace.QName;
> >
> > import org.apache.axis.client.Call;
> > import org.apache.axis.client.Service ;
> > import
> org.apache.axis.encoding.ser.BeanDeserializerFactory;
> > import
> org.apache.axis.encoding.ser.BeanSerializerFactory;
> >
> > public class MyClient {
> >
> >     public static void main(String[] args) throws Exception {
> >
> >         String endpoint =
> >             "http://localhost/axis/services/MyService";
> >
> >        Service  service = new Service();
> >        Call call = (Call)service.createCall();
> >
> >        call.setTargetEndpointAddress( new java.net.URL(endpoint) );
> >        call.setOperationName(new QName("getMyBean") );
> >
> >        QName qn = new QName("urn:MyService","MyBean");
> >        call.registerTypeMapping(MyBean.class, qn,
> >            new BeanSerializerFactory(MyBean.class, qn),
> >            new BeanDeserializerFactory(MyBean.class, qn));
> >        call.setReturnType(qn);
> >
> >        MyBean bean = (MyBean)call.invoke(new Object[] {});
> >
> >        System.out.println(bean.getName());
> >
> >     }
> >
> > }
> >
> > And here is my deployment descriptor:
> >
> > <deployment xmlns="http://xml.apache.org/axis/wsdd/ "
> >
> xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
> >
> >   <service name="MyService" provider="java:RPC">
> >     <parameter name="className" value="com.paulbarry.MyService"/>
> >     <parameter name="allowedMethods" value="*"/>
> >     <beanMapping qname="myNS:MyBean" xmlns:myNS="urn:MyService"
> > languageSpecificType="java:com.paulbarry.MyBean"/>
> > </service>
> >
> > </deployment>
> >
>
>

Mime
View raw message