Hi all, I have a web service, described via a wsdl. I deployed this, but it seems only one method is recognized. When I go to http://127.0.0.1:8080/axis/servlet/AxisServlet, only the doPrediction method is listed, but not getSpectrumTypes. Furthermore when using my client, always the doPrediction method is executed. I put in the relevant file, if you need any other information, please ask.
The wsdl: <?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.nmrshiftdb.org/ws/NMRShiftDB/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:cml="http://www.xml-cml.org/schema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" name="NMRShiftDB" targetNamespace="http://www.nmrshiftdb.org/ws/NMRShiftDB/"> <wsdl:types> <xsd:schema targetNamespace="http://www.nmrshiftdb.org/ws/NMRShiftDB/" xmlns:cml="http://www.xml-cml.org/schema"> <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> <xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" /> <xsd:import namespace="http://www.w3.org/2001/XMLSchema" /> <xsd:import namespace="http://www.xml-cml.org/schema" schemaLocation="http://almost.cubic.uni-koeln.de/schema.xsd" /> <xsd:element name="doPredictionResponse" type="cml:spectrumTypeType" /> <xsd:element name="doPredictionRequest" type="tns:DoPredictionParameters" /> <xsd:complexType name="DoPredictionParameters"> <xsd:sequence> <xsd:element ref="cml:molecule" minOccurs="1" maxOccurs="1" /> <xsd:element name="spectrumTypeName" type="xsd:string" /> </xsd:sequence> </xsd:complexType> </xsd:schema> </wsdl:types> <wsdl:message name="doPredictionResponse"> <wsdl:part element="tns:doPredictionResponse" name="doPredictionResponse" /> </wsdl:message> <wsdl:message name="doPredictionRequest"> <wsdl:part element="tns:doPredictionRequest" name="doPredictionRequest" /> </wsdl:message> <wsdl:message name="getSpectrumTypesResponse"> <wsdl:part type="xsd:string" name="getSpectrumTypesResponse" /> </wsdl:message> <wsdl:portType name="NMRShiftDB"> <wsdl:operation name="doPrediction"> <wsdl:input message="tns:doPredictionRequest" /> <wsdl:output message="tns:doPredictionResponse" /> </wsdl:operation> </wsdl:portType> <wsdl:portType name="NMRShiftDBOneWay"> <wsdl:operation name="getSpectrumTypes"> <wsdl:output message="tns:getSpectrumTypesResponse"></wsdl:output> </wsdl:operation> </wsdl:portType> <wsdl:binding name="NMRShiftDBSOAP" type="tns:NMRShiftDB"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="doPrediction"> <soap:operation soapAction="http://www.nmrshiftdb.org/axis/services/NMRShiftDB?method=doPredi ction" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:binding name="NMRShiftDBOneWaySOAP" type="tns:NMRShiftDBOneWay"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="getSpectrumTypes"> <soap:operation soapAction="http://www.nmrshiftdb.org/ws/NMRShiftDB/getSpectrumTypes" /> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="NMRShiftDB"> <wsdl:port binding="tns:NMRShiftDBSOAP" name="NMRShiftDBSOAP"> <soap:address location="http://almost.cubic.uni-koeln.de/axis/services/NMRShiftDB" /> </wsdl:port> <wsdl:port binding="tns:NMRShiftDBOneWaySOAP" name="NMRShiftDBOneWaySOAP"> <soap:address location="http://almost.cubic.uni-koeln.de/axis/services/NMRShiftDB" /> </wsdl:port> </wsdl:service> </wsdl:definitions> The wsdd: <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <!-- Services from serviceName WSDL service -->; <service name="NMRShiftDB" provider="java:MSG" use="literal"> <!-- Definitions for the SOAPMonitor (optional) --> <!--<requestFlow> <handler type="soapmonitor"/> </requestFlow> <responseFlow> <handler type="soapmonitor"/> </responseFlow>--> <!-- End of the definitions for the SOAPMonitor --> <parameter name="className" value="org.openscience.nmrshiftdb.webservices.NMRShiftDBServiceBindingImpl"/> <parameter name="allowedMethods" value="*"/> <wsdlFile>NMRShiftDB.wsdl</wsdlFile> </service> </deployment> Finally my client code which should call getSpectrumTypes. It calls doPrediction actually: public void testGetSpectrumTypes() throws Exception{ Options opts = new Options(new String[0]); // Modify it to the location of your service opts.setDefaultURL("http://"+server+"/axis/services/NMRShiftDB"); Service service = new Service(); Call call = (Call) service.createCall(); call.setOperationName("getSpectrumTypes"); call.setTargetEndpointAddress( new URL(opts.getURL()) ); DocumentBuilder builder; builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); SOAPBodyElement[] input = new SOAPBodyElement[1]; Document doc = builder.newDocument(); Element cdataElem; cdataElem = doc.createElementNS("http://www.nmrshiftdb.org/ws/NMRShiftDB/", "getSpectrumTypes"); Element reqElem; reqElem = doc.createElementNS("http://www.nmrshiftdb.org/ws/NMRShiftDB/", "spectrumTypeName"); Node node; node = doc.createTextNode("13C"); reqElem.appendChild(node); String filename = "org/openscience/nmrshiftdb/tests/butadiene.cml"; InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); Document document = builder.parse(ins); Node nodeimp=doc.importNode(document.getChildNodes().item(0),true); cdataElem.appendChild(nodeimp); cdataElem.appendChild(reqElem); input[0] = new SOAPBodyElement(cdataElem); System.out.println(input[0].toString()); Vector elems = (Vector) call.invoke( input ); SOAPBodyElement elem = null ; Element e = null ; elem = (SOAPBodyElement) elems.get(0); e = elem.getAsDOM(); System.err.println(XMLUtils.ElementToString(e)); assertEquals(1,e.getChildNodes().getLength()); } It would be great if you could help me with this problem Stefan -- Stefan Kuhn M. A. Cologne University BioInformatics Center (http://www.cubic.uni-koeln.de) Zülpicher Str. 47, 50674 Cologne Tel: +49(0)221-470-7428 Fax: +49 (0) 221-470-7786 My public PGP key is available at http://pgp.mit.edu ------------------------------------------------------- -- Stefan Kuhn M. A. Cologne University BioInformatics Center (http://www.cubic.uni-koeln.de) Zülpicher Str. 47, 50674 Cologne Tel: +49(0)221-470-7428 Fax: +49 (0) 221-470-7786 My public PGP key is available at http://pgp.mit.edu --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
