Hi Anne,

Thanks a lot for the help. The WSDL editor and your pointers proved to be of great 
help. I was able to generate the Java files using WSDL2Java tool. I made the 
appropriate additions to the files (HelloServerBindingImpl.java), made a jar file 
containing all the class files and copied it to 
%TOMCAT_HOME%\webapps\axis\WEB-INF\lib. I deployed the service using the command :

java org.apache.axis.client.AdminClient deploy.wsdd

this deploy.wsdd was generated along with the other java files using WSDL2Java. I am 
getting the message 

Processing file deploy.wsdd
<Admin>Done processing</Admin>

but when I try to look at the wsdl through my browser 
(http://craftgepc18.epfl.ch:8080/axis/services/HelloServer?wsdl) it gives the error

AXIS error

Sorry, something seems to have gone wrong... here are the details:

Exception - java.lang.reflect.InvocationTargetException

Do i need to make changes to the deploy.wsdd too or is it some other problem?

Thanks again for your help,
Nitesh

----- Original Message -----
From: Anne Thomas Manes <[EMAIL PROTECTED]>
Date: Tuesday, June 1, 2004 3:39 pm
Subject: RE: java.io.IOException: Emitter failure.  There is an undefined binding 
(HelloServerBinding) in the WSDL document.

> Nitesh,
> 
> I agree that your QNames look okay, but there are quite a few 
> problems with
> your WSDL. You've got a serious mix and match of RPC/encoded and
> document/literal definitions.
> 
> I think your specific error is caused by the way you've defined your
> <soap:body> elements:
> 
> <soap:body
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
>       namesapce="http://craft.epfl.ch/wsdl/HelloServer.wsdl";
>       use="literal"/>
> 
> 1) you have "namespace" spelled wrong (so perhaps wsdl2java 
> ignored the
> binding definition -- hence no binding was defined)
> 2) you should not use the "encodingStyle" and the "namespace" 
> attributes on
> document/literal bindings.
> 
> Your <soap:body> elements should be defined like this:
> 
> <soap:body use="literal"/>
> 
> You also have typos in some of your message names:
> 
>       <message name="sayHellToRequest">
>               <part name="name" type="xsd:string"/>
>       </message>
> 
> Some basic guidelines for doc/literal bindings:
> - Don't use the soapenc:array type. Define your own array using the
> minOccurs and maxOccurs attributes.
> - You have only one message part per message. That message part must
> reference an element definition rather than a type definition.
> - To use the Wrapped style, the referenced element definition must 
> have the
> same name as the portType operation name. The element must be 
> defined as a
> <sequence>. The operation parameters are defined as elements 
> within the
> sequence.
> 
> For example, your addRequest message should be defined like this:
> 
>       <message name="addRequest">
>               <part name="parameters" element="tns:add"/>
>       </message>
> 
> And the add element should be defined like this:
> 
>       <element name="add">
>        <complexType>
>          <sequence>
>               <element name="num1" type="xsd:int"/>
>               <element name="num2" type="xsd:int"/>
>          </sequence>
>        </complexType>
>       </element>
> 
> I suggest you get a WSDL editor to help you define your WSDL 
> documents. The
> Cape Clear SOA Editor is free. See
> http://www.capescience.com/soa/index.shtml
> 
> Anne
> 
> -----Original Message-----
> From: NITESH GUPTA [EMAIL PROTECTED] 
> Sent: Tuesday, June 01, 2004 6:15 AM
> To: [EMAIL PROTECTED]
> Subject: java.io.IOException: Emitter failure. There is an 
> undefined binding
> (HelloServerBinding) in the WSDL document.
> 
> Hi,
> 
> I got the error  :
> 
> java.io.IOException: Emitter failure.  There is an undefined binding
> (HelloServerBinding) in the WSDL document.
> Hint: make sure <port binding=".."> is fully qualified.
> 
> I checked my WSDL file and everything seems ok. I'm not able to 
> figure out
> why I am getting this error.
> 
> I have included the WSDL file below.
> 
> Any help is appreciated.
> Thanks in advance,
> Nitesh
> 
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <definitions name="HelloServer"
>       targetnamespace="http://craft.epfl.ch/wsdl/HelloServer.wsdl";
>       xmlns="http://schemas.xmlsoap.org/wsdl/";
>       xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
>       xmlns:tns="http://craft.epfl.ch/wsdl/HelloServer.wsdl";
>       xmlns:xsd="http://www.w3.org/2001/XMLSchema";
>       xmlns:xsd1="http://craft.epfl.ch/schema";>
>       
>       <types>
>               <xsd:schema
>       
> targetnamespace="http://craft.epfl.ch/wsdl/HelloServer.wsdl";
>                       xmlns="http://www.w3.org/2001/XMLSchema";
>                       xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
>       
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";>
>                       
>                       <xsd:complexType name="ArrayOfString">
>                               <xsd:complexContent>
>                                       <xsd:restriction
> base="soapenc:Array">
>                                               <xsd:attribute
> ref="soapenc:arrayType" wsdl:arrayType="string[]"/>
>                                       </xsd:restriction>
>                               </xsd:complexContent>
>                       </xsd:complexType>
>                       
>                       <xsd:complexType name="HelloUser">
>                               <xsd:sequence>
>                                       <xsd:element name="userID"
> type="xsd:int"/>
>                                       <xsd:element name="userName"
> nillable="true" type="xsd:string"/>
>                                       <xsd:element maxOccurs="unbounded"
> name="userAdd" nillable="true" type="xsd:string"/>
>                               </xsd:sequence>
>                       </xsd:complexType>
>               </xsd:schema>
>       </types>
>       
>       <message name="addRequest">
>               <part name="num1" type="xsd:int"/>
>               <part name="num2" type="xsd:int"/>
>       </message>
>                               
>       <message name="addResponse">
>               <part name="result" type="xsd:int"/>
>       </message>
> 
>       <message name="sayHellToRequest">
>               <part name="name" type="xsd:string"/>
>       </message>
> 
>       <message name="sayHellToResponse">
>               <part name="reply" type="xsd:string"/>
>       </message>
> 
>       <message name="sayHellTo1Request">
>               <part name="names" type="xsd1:ArrayOfString"/>
>       </message>
>                                       
>       <message name="sayHellTo1Resonse">
>               <part name="reply" type="xsd:string"/>
>       </message>
> 
>       <message name="testUserRequest">
>               <part name="user" type="xsd1:HelloUser"/>
>       </message>
>       
>       <message name="testUserResponse">
>       </message>
> 
>       <portType name="HelloServer">
>               <operation name="add" parameterOrder="num1 num2">
>                       <input message="tns:addRequest" name="addRequest"/>
>                       <output message="tns:addResponse"
> name="addResponse"/>
>               </operation>
>               
>               <operation name="sayHelloTo">
>                       <input message="tns:sayHelloToRequest"
> name="sayHelloToRequest"/>
>                       <output message="tns:sayHelloToResponse"
> name="sayHelloToResponse"/>
>               </operation>
>               
>               <operation name="sayHelloTo1">
>                       <input message="tns:sayHelloTo1Request"
> name="sayHelloTo1Request"/>
>                       <output message="tns:sayHelloTo1Response"
> name="sayHelloTo1Response"/>
>               </operation>
>               
>               <operation name="testUser">
>                       <input message="tns:testUserRequest"
> name="testUserRequest"/>
>                       <output message="tns:testUserResponse"
> name="testUserResponse"/>
>               </operation>
>       </portType>
>       
>       <binding name="HelloServerBinding" type="tns:HelloServer">
>               <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
>       
>               <operation name="add">
>                       <soap:operation soapAction=""/>
>                       <input name="addRequest">
>                               <soap:body
>       
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
>       
> namesapce="http://craft.epfl.ch/wsdl/HelloServer.wsdl";
>                                       use="literal"/>
>                       </input>
>                       <output name="addResponse"> 
>                               <soap:body
>       
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
>       
> namesapce="http://craft.epfl.ch/wsdl/HelloServer.wsdl";
>                                       use="literal"/>
>                       </output>       
>               </operation>
>       
>               <operation name="sayHelloTo">
>                       <soap:operation soapAction=""/>
>                       <input name="sayHelloToRequest">
>                               <soap:body
>       
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
>       
> namesapce="http://craft.epfl.ch/wsdl/HelloServer.wsdl";
>                                       use="literal"/>
>                       </input>
>                       <output name="sayHelloToResponse"> 
>                               <soap:body
>       
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
>       
> namesapce="http://craft.epfl.ch/wsdl/HelloServer.wsdl";
>                                       use="literal"/>
>                       </output>       
>               </operation>
>       
>               <operation name="sayHelloTo1">
>                       <soap:operation soapAction=""/>
>                       <input name="sayHelloTo1Request">
>                               <soap:body
>       
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
>       
> namesapce="http://craft.epfl.ch/wsdl/HelloServer.wsdl";
>                                       use="literal"/>
>                       </input>
>                       <output name="sayHelloTo1Response"> 
>                               <soap:body
>       
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
>       
> namesapce="http://craft.epfl.ch/wsdl/HelloServer.wsdl";
>                                       use="literal"/>
>                       </output>       
>               </operation>
>       
>               <operation name="testUser">
>                       <soap:operation soapAction=""/>
>                       <input name="testUserRequest">
>                               <soap:body
>       
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
>       
> namesapce="http://craft.epfl.ch/wsdl/HelloServer.wsdl";
>                                       use="literal"/>
>                       </input>
>                       <output name="testUserResponse"> 
>                               <soap:body
>       
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
>       
> namesapce="http://craft.epfl.ch/wsdl/HelloServer.wsdl";
>                                       use="literal"/>
>                       </output>       
>               </operation>
>       
>       </binding>
>       
>       <service name="HelloServerService">
>               <port name="HelloServerPort"
> binding="tns:HelloServerBinding">
>                       <soap:address
> location="http//:craftgepc18.epfl.ch:8080/axis/services/helloserver"/>
>               </port>
>       </service>
>       
> </definitions>
> 
> 

Reply via email to