Eric: You need code at the Server end to process the WSDL I would need to see that code -Martin ----- Original Message ----- From: "Eric Carlson" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Saturday, March 06, 2004 9:47 AM Subject: Re: My java client always returns (null)
Nothing about my newbie attempts at SOAP is a dumb question !!! Do you mean where does it actually live? If so its here: http://www.webservicex.net/WS/WSDetails.aspx?CATID=12&WSID=63 On Sat, 6 Mar 2004 09:35:53 -0500, you wrote: >I'll ask the dumb question >Where is the code for TranslateService.asmx? >-Martin >----- Original Message ----- >From: "Eric Carlson" <[EMAIL PROTECTED]> >To: <[EMAIL PROTECTED]> >Sent: Saturday, March 06, 2004 9:32 AM >Subject: My java client always returns (null) > > >Hi, > >Sorry for the long post ;-) >I have (honestly!) been trying hard to get as simple a java client >going for a sexy looking webservice I've seen at xmethods but with no >joy. It seems to connect but always returns null. If its ok, I'd like >to show the wsdl and my java sources please? So if anyone has a moment >can they give me a clue why I get null please? > >(My SOAPResponse is an attempt at a generic bean to handle responses. >I think the real problem here is my lack of ability to see exactly >which fields in the WSDL should be used for the mapping in my source, >and how ;-)). Thanks very much in advance...) > >-- BEGIN WSDL -- ><?xml version="1.0" encoding="utf-8"?> ><definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" >xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" >xmlns:s="http://www.w3.org/2001/XMLSchema" >xmlns:s0="http://www.webservicex.net/" >xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" >xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" >xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" >targetNamespace="http://www.webservicex.net/" >xmlns="http://schemas.xmlsoap.org/wsdl/"> > <types> > <s:schema elementFormDefault="qualified" >targetNamespace="http://www.webservicex.net/"> > <s:element name="Translate"> > <s:complexType> > <s:sequence> > <s:element minOccurs="1" maxOccurs="1" name="LanguageMode" >type="s0:Language" /> > <s:element minOccurs="0" maxOccurs="1" name="Text" >type="s:string" /> > </s:sequence> > </s:complexType> > </s:element> > <s:simpleType name="Language"> > <s:restriction base="s:string"> > <s:enumeration value="EnglishTOChinese" /> > <s:enumeration value="EnglishTOFrench" /> > <s:enumeration value="EnglishTOGerman" /> > <s:enumeration value="EnglishTOItalian" /> > <s:enumeration value="EnglishTOJapanese" /> > <s:enumeration value="EnglishTOKorean" /> > <s:enumeration value="EnglishTOPortuguese" /> > <s:enumeration value="EnglishTOSpanish" /> > <s:enumeration value="ChineseTOEnglish" /> > <s:enumeration value="FrenchTOEnglish" /> > <s:enumeration value="FrenchTOGerman" /> > <s:enumeration value="GermanTOEnglish" /> > <s:enumeration value="GermanTOFrench" /> > <s:enumeration value="ItalianTOEnglish" /> > <s:enumeration value="JapaneseTOEnglish" /> > <s:enumeration value="KoreanTOEnglish" /> > <s:enumeration value="PortugueseTOEnglish" /> > <s:enumeration value="RussianTOEnglish" /> > <s:enumeration value="SpanishTOEnglish" /> > </s:restriction> > </s:simpleType> > <s:element name="TranslateResponse"> > <s:complexType> > <s:sequence> > <s:element minOccurs="0" maxOccurs="1" >name="TranslateResult" type="s:string" /> > </s:sequence> > </s:complexType> > </s:element> > <s:element name="string" nillable="true" type="s:string" /> > </s:schema> > </types> > <message name="TranslateSoapIn"> > <part name="parameters" element="s0:Translate" /> > </message> > <message name="TranslateSoapOut"> > <part name="parameters" element="s0:TranslateResponse" /> > </message> > <message name="TranslateHttpGetIn"> > <part name="LanguageMode" type="s:string" /> > <part name="Text" type="s:string" /> > </message> > <message name="TranslateHttpGetOut"> > <part name="Body" element="s0:string" /> > </message> > <message name="TranslateHttpPostIn"> > <part name="LanguageMode" type="s:string" /> > <part name="Text" type="s:string" /> > </message> > <message name="TranslateHttpPostOut"> > <part name="Body" element="s0:string" /> > </message> > <portType name="TranslationServiceSoap"> > <operation name="Translate"> > <documentation>Convert text from one language to another >language .Supported languages are English to Chinese, English to >French, English to German, English to Italian, English to Japanese, >English to Korean, English to Portuguese, English to Spanish, Chinese >to English, French to English, French to German, German to English, >German to French, Italian to English, Japanese to English, Korean to >English, Portuguese to English, Russian to English, Spanish to >English.</documentation> > <input message="s0:TranslateSoapIn" /> > <output message="s0:TranslateSoapOut" /> > </operation> > </portType> > <portType name="TranslationServiceHttpGet"> > <operation name="Translate"> > <documentation>Convert text from one language to another >language .Supported languages are English to Chinese, English to >French, English to German, English to Italian, English to Japanese, >English to Korean, English to Portuguese, English to Spanish, Chinese >to English, French to English, French to German, German to English, >German to French, Italian to English, Japanese to English, Korean to >English, Portuguese to English, Russian to English, Spanish to >English.</documentation> > <input message="s0:TranslateHttpGetIn" /> > <output message="s0:TranslateHttpGetOut" /> > </operation> > </portType> > <portType name="TranslationServiceHttpPost"> > <operation name="Translate"> > <documentation>Convert text from one language to another >language .Supported languages are English to Chinese, English to >French, English to German, English to Italian, English to Japanese, >English to Korean, English to Portuguese, English to Spanish, Chinese >to English, French to English, French to German, German to English, >German to French, Italian to English, Japanese to English, Korean to >English, Portuguese to English, Russian to English, Spanish to >English.</documentation> > <input message="s0:TranslateHttpPostIn" /> > <output message="s0:TranslateHttpPostOut" /> > </operation> > </portType> > <binding name="TranslationServiceSoap" >type="s0:TranslationServiceSoap"> > <soap:binding transport="http://schemas.xmlsoap.org/soap/http" >style="document" /> > <operation name="Translate"> > <soap:operation >soapAction="http://www.webservicex.net/Translate" style="document" /> > <input> > <soap:body use="literal" /> > </input> > <output> > <soap:body use="literal" /> > </output> > </operation> > </binding> > <binding name="TranslationServiceHttpGet" >type="s0:TranslationServiceHttpGet"> > <http:binding verb="GET" /> > <operation name="Translate"> > <http:operation location="/Translate" /> > <input> > <http:urlEncoded /> > </input> > <output> > <mime:mimeXml part="Body" /> > </output> > </operation> > </binding> > <binding name="TranslationServiceHttpPost" >type="s0:TranslationServiceHttpPost"> > <http:binding verb="POST" /> > <operation name="Translate"> > <http:operation location="/Translate" /> > <input> > <mime:content type="application/x-www-form-urlencoded" /> > </input> > <output> > <mime:mimeXml part="Body" /> > </output> > </operation> > </binding> > <service name="TranslationService"> > <port name="TranslationServiceSoap" >binding="s0:TranslationServiceSoap"> > <soap:address >location="http://www.webservicex.net/TranslateService.asmx" /> > </port> > <port name="TranslationServiceHttpGet" >binding="s0:TranslationServiceHttpGet"> > <http:address >location="http://www.webservicex.net/TranslateService.asmx" /> > </port> > <port name="TranslationServiceHttpPost" >binding="s0:TranslationServiceHttpPost"> > <http:address >location="http://www.webservicex.net/TranslateService.asmx" /> > </port> > </service> ></definitions> >-- END WSDL-- > >-- BEGIN Translate.java -- >import java.io.*; >import java.util.*; >import java.net.*; >import org.w3c.dom.*; >import org.xml.sax.*; >import javax.xml.parsers.*; >import org.apache.soap.util.xml.*; >import org.apache.soap.*; >import org.apache.soap.encoding.*; >import org.apache.soap.encoding.soapenc.*; >import org.apache.soap.rpc.*; >import org.apache.soap.transport.http.SOAPHTTPConnection; > >public class Translate { > public static void main (String[] args) { > try { > > URL url = new >URL("http://www.webservicex.com/TranslateService.asmx"); > > SOAPHTTPConnection st = new SOAPHTTPConnection(); > > Call call = new Call(); > call.setSOAPTransport(st); > > call.setTargetObjectURI("urn:TranslationServiceSOAP"); > call.setMethodName("Translate"); > > SOAPMappingRegistry smr = new SOAPMappingRegistry(); > call.setSOAPMappingRegistry(smr); > > BeanSerializer beanSer = new BeanSerializer(); > > smr.mapTypes(Constants.NS_URI_SOAP_ENC, > new QName( "http://www.webservicex.net/", >"TranslateResult"), > SOAPResponse.class, beanSer, beanSer); > > call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC); > > Vector params = new Vector(); > params.addElement (new Parameter("LanguageMode", >String.class, "EnglishTOFrench", null)); > params.addElement (new Parameter("Text", String.class, >"Hello", null)); > call.setParams(params); > > Response resp = null; > try { > resp = call.invoke(url, >"http://www.webservicex.net/Translate"); >System.out.println(resp); > } catch(Exception e) { > System.err.println(e.toString()); > } > > Object value = null; > > if (!resp.generatedFault()) { > Parameter ret = resp.getReturnValue(); > value = ret.getValue(); > } else { > Fault fault = resp.getFault(); > System.err.println("SOAP call raised fault code:" > +fault.getFaultCode() > +" Text:"+ fault.getFaultString()); > } > > System.out.println("Return value is "+value); > } catch (Exception e) { > e.printStackTrace(); > } > } >} >-- END Translate.java -- > >-- BEGIN SOAPResponse.java -- >import java.io.*; > >public class SOAPResponse { > public String TranslateResponse; > public String TranslateResult; > public String string; > > public String toString() { > return TranslateResponse; > } > > public SOAPResponse() {} > > public String getTranslateResponse() { > return TranslateResponse; > } > > public void setTranslateResponse(String TranslateResponse) { > this.TranslateResponse = TranslateResponse; > } > > public String getTranslateResult() { > return TranslateResult; > } > > public void setTranslateResult(String TranslateResult) { > this.TranslateResult = TranslateResult; > } > > public String getString() { > return string; > } > > public void setString(String string) { > this.string = string; > } > >} >-- END SOAPResponse.java --