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> > >