Stefan- Are you attempting to execute 2 tasks asynchronously? If so why not break the design into 2 separate Axis services .. in this way each service request and response invocation can execute independently..
Viel Gluck, Martin -- ********************************************************************* This email message and any files transmitted with it contain confidential information intended only for the person(s) to whom this email message is addressed. If you have received this email message in error, please notify the sender immediately by telephone or email and destroy the original message without making a copy. Thank you. ----- Original Message ----- From: "Stefan Kuhn" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Wednesday, June 21, 2006 11:35 AM Subject: Re: problem with two methods in service > Am Wednesday 21 June 2006 16:06 schrieben Sie: >> I don't believe that Axis let's you define two ports with the same access >> point. >> >> Rather than defining two different portTypes, each with its own associated >> binding, define one portType and one binding with two operations. > > Hi Anne, > thanks for your answer. Actually what I sent was some elaborated guess by > somebody how knows WSDL. My first suggestion was the following, which has > only one portType/binding. It actually gives the same problem, only one > method (doPrediction) recognized and all request go to this method. > Stefan > > BTW: I am using axis 1.4, if this helps > > <?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:operation name="getSpectrumTypes"> > <wsdl:output message="tns:getSpectrumTypesResponse" /> > </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://127.0.0.1:8080/axis/services/NMRShiftDB?method=doPrediction" > /> > <wsdl:input> > <soap:body use="literal" /> > </wsdl:input> > <wsdl:output> > <soap:body use="literal" /> > </wsdl:output> > </wsdl:operation> > <wsdl:operation name="getSpectrumTypes"> > <soap:operation > soapAction="http://127.0.0.1:8080/axis/services/NMRShiftDB?method=getSpectrumTypes" > /> > <wsdl:input> > <soap:body use="literal" /> > </wsdl:input> > <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://127.0.0.1:8080/axis/services/NMRShiftDB" /> > </wsdl:port> > </wsdl:service> > </wsdl:definitions> > > >> >> Anne >> >> On 6/21/06, Stefan Kuhn <[EMAIL PROTECTED]> wrote: >> > 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.NMRShiftDBServiceBindingImp >> >l "/> >> > <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] > > -- > 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] > >
