jechawke 01/06/16 15:10:45 Modified: targets/soap/faq faq_chawke.html Log: Updated the FAQ with some corrections and some new entries. Revision Changes Path 1.2 +92 -64 xml-site/targets/soap/faq/faq_chawke.html Index: faq_chawke.html =================================================================== RCS file: /home/cvs/xml-site/targets/soap/faq/faq_chawke.html,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- faq_chawke.html 2001/05/23 17:40:59 1.1 +++ faq_chawke.html 2001/06/16 22:10:44 1.2 @@ -11,7 +11,7 @@ </HEAD> <BODY LINK="#0000ff" VLINK="#800080"> <H1>Apache-SOAP User's FAQ</H1> -This FAQ is based on the questions and answers that appear on the <a href="http://xml.apache.org/soap/mail.html">Apache-SOAP User's Mailing List</a>.<br> It is currently maintained by <A HREF="mailto:[EMAIL PROTECTED]">Jonathan Chawke</A>. +This FAQ is based on the questions and answers that appear on the <a href="http://xml.apache.org/soap/mail.html">Apache-SOAP User's Mailing List</a>.<br> It is currently maintained by <A HREF="mailto:[EMAIL PROTECTED]">Jonathan Chawke</A>, and was last modified on Sat 16-Jun-2001 10:28PM GMT. <H1><A NAME="toc">Table of Contents</A></H1><OL><LI><H2>Hot Topics</H2>1.1 <A HREF="#Q1_1">Help! I'm getting this error: "Element must contain a:'faultcode' element"</A><br> 1.2 <A HREF="#Q1_2">Help! I'm getting this error: "Unable to resolve namespace URI for 'xsd'".</A><br> 1.3 <A HREF="#Q1_3">Help! I'm getting this error: "Unable to resolve target object.." when I try to invoke a method on my SOAP service.</A><br> @@ -23,8 +23,7 @@ 2.3 <A HREF="#Q2_3">I'm just getting started with SOAP. Where can I find a tutorial on SOAP programming?</A><br> 2.4 <A HREF="#Q2_4">Are there any good books on SOAP?</A><br> 2.5 <A HREF="#Q2_5">What other SOAP implementations are available?</A><br> -2.6 <A HREF="#Q2_6">How do I tell my Apache SOAP client to use a proxy server?</A><br> -2.7 <A HREF="#Q2_7">How do I perform Proxy Authentication with my Apache SOAP client?</A><br> +2.6 <A HREF="#Q2_6">What is meant by the phrase 'SOAP is a wire-level protocol'?</A><br> 2.8 <A HREF="#Q2_8">How do I use TcpTunnel and TcpTunnelGUI?</A><br> 2.9 <A HREF="#Q2_9">How do I use SOAP over SSL?</A><br> 2.10 <A HREF="#Q2_10">How do I use SOAP over SMTP?</A><br> @@ -32,17 +31,17 @@ 2.12 <A HREF="#Q2_12">I'd like to write a SOAP client as a Java applet. Are there any 'tiny' SOAP client libraries I could use?</A><br> 2.13 <A HREF="#Q2_13">Where do I find nightly builds of the POP3 and SMTP beans?</A><br> 2.14 <A HREF="#Q2_14">Can a SOAP server maintain session between multiple client invocations?</A><br> -2.15 <A HREF="#Q2_15">How do I use a String array as a parameter to a SOAP service?</A><br> 2.16 <A HREF="#Q2_16">Is there a way to generate SOAP stub/skeleton from deployment descriptor?</A><br> 2.17 <A HREF="#Q2_17">Is there a way to generate SOAP deployment descriptor from IDL?</A><br> 2.18 <A HREF="#Q2_18">Is there any way of specifying a timeout for a SOAP method invocation?</A><br> -2.20 <A HREF="#Q2_20">What is the best way to send a large file (>10Mb) with a soap request?</A><br> +2.19 <A HREF="#Q2_19">Can Apache-SOAP handle large (multiple megabyte) files?</A><br> +2.20 <A HREF="#Q2_20">What is the best way to send a large file (multiple megabytes) with a soap request?</A><br> 2.21 <A HREF="#Q2_21">Help! I got the following error message: "SOAP Service Manager: Unable to read 'DeployedServices.ds': assuming fresh start"</A><br> -2.22 <A HREF="#Q2_22">How can I generate a WSDL file for my SOAP service?</A><br> -2.23 <A HREF="#Q2_23">Is there a tool that can validate WSDL?</A><br> 2.25 <A HREF="#Q2_25">Is it possible to pass parameters to the constructor in a SOAP application ?</A><br> 2.26 <A HREF="#Q2_26">How do I write a SOAP service that maintains state across a session?</A><br> -2.27 <A HREF="#Q2_27">Where can I find the WSDL specification document?</A><br> +2.27 <A HREF="#Q2_27">How do I tell my Apache SOAP client to use a proxy server?</A><br> +2.28 <A HREF="#Q2_28">How do I perform Proxy Authentication with my Apache SOAP client?</A><br> +2.31 <A HREF="#Q2_31">Where can I find a list of public SOAP services that are available on the Internet?</A><br> <br></LI><LI><H2>Installation</H2>3.0 <A HREF="#Q3_0">Can I install Apache-SOAP 2.1 on Tomcat 4.0 beta?</A><br> 3.1 <A HREF="#Q3_1">How do I install Apache-SOAP on Tomcat?</A><br> 3.2 <A HREF="#Q3_2">How do I install Apache-SOAP on Bea WebLogic 6.0?</A><br> @@ -54,8 +53,18 @@ 3.8 <A HREF="#Q3_8">How do I install Apache-SOAP on iPlanet?</A><br> 3.10 <A HREF="#Q3_10">How do I install Apache-SOAP on Unify's ServletExec?</A><br> <br></LI><LI><H2>Troubleshooting</H2>4.2 <A HREF="#Q4_2">Help! Visual Age can't compile SOAP - it says I'm missing package com.ibm.xmi.job.*</A><br> +4.5 <A HREF="#Q4_5">Help! I try to run my SOAP client I get this message: "Unsupported response content type "text/html", must be: "text/xml". Response was: HTTP Error 405 - Method Not Allowed".</A><br> 4.7 <A HREF="#Q4_7">Help! I'm using Tomcat+SOAP on Linux. When I try to access the SOAP admin page, Tomcat crashes and I see this message: "HotSpot Virtual Machine Error, Unexpected Signal 11"</A><br> -<br></LI><LI><H2>SOAP and .NET</H2>5.3 <A HREF="#Q5_3">Help! My Apache SOAP Client cannot connect to a .NET service - the server says it expects 'text/xml' and doesn't understand "text/xml; charset=utf-8".</A><br> +4.8 <A HREF="#Q4_8">Help! I just upgraded Apache-SOAP. When I run the service manager I get the following error: "javax.servlet.ServletException: Cannot create bean of class org.apache.soap.server.ServiceManager"</A><br> +4.9 <A HREF="#Q4_9">Help! Apache won't integrate with IIS: it says that the message content type should be text/xml but it is read as text/xml. What do I do?</A><br> +4.10 <A HREF="#Q4_10">Help! I'm getting this error: "java.io.InvalidClassException: +org.apache.soap.server.DeploymentDescriptor; Local class not compatible"</A><br> +<br></LI><LI><H2>WSDL</H2>5.1 <A HREF="#Q5_1">Where can I find the WSDL specification document?</A><br> +5.2 <A HREF="#Q5_2">How can I generate a WSDL file for my SOAP service?</A><br> +5.3 <A HREF="#Q5_3">Is there a tool that can validate WSDL?</A><br> +5.4 <A HREF="#Q5_4">Is there a command-line utility that I can use to generate a WSDL File?</A><br> +5.5 <A HREF="#Q5_5">Is there a command-line utility that I can use to generate WSDL stub and skeleton files?</A><br> +<br></LI><LI><H2>SOAP and .NET</H2>6.3 <A HREF="#Q6_3">Help! My Apache SOAP Client cannot connect to a .NET service - the server says it expects 'text/xml' and doesn't understand "text/xml; charset=utf-8".</A><br> </OL> <HR NOSHADE><H2>Questions and Answers</H2> @@ -63,105 +72,124 @@ <p><H2><u>1. Hot Topics</u></H2> 1.1 <STRONG><A NAME="Q1_1">Help! I'm getting this error: "Element must contain a:'faultcode' element"</A></STRONG><BR> - This is probably due to a bug in some newer releases of Xerces (e.g. 1.3.1). Try using Xerces 1.2.3 or 1.3.0 instead (on both the client AND the server)- have a look on <A HREF="http://xml.apache.org/dist/xerces-j/">http://xml.apache.org/dist/xerces-j/</A>. You should also make sure that it is the FIRST entry in your classpath.<p> +This is probably due to a bug in some newer releases of Xerces (e.g. 1.3.1). Try using Xerces 1.2.3 or 1.3.0 instead (on both the client AND the server) - have a look on <A HREF="http://xml.apache.org/dist/xerces-j/">http://xml.apache.org/dist/xerces-j/</a>. You should also make sure that xerces.jar is the FIRST entry in your classpath.<p> 1.2 <STRONG><A NAME="Q1_2">Help! I'm getting this error: "Unable to resolve namespace URI for 'xsd'".</A></STRONG><BR> - Ensure that:<BR>(a) You are using Xerces 1.2.3 or 1.3.0 (but NOT 1.3.1) - on both the client and the server (if both are using Apache-SOAP).<BR>(b) xerces.jar is the FIRST entry in your CLASSPATH as described in the Apache-SOAP installation instructions.<BR>(c) There is ONLY ONE version of xerces.jar in your CLASSPATH.<p> +Ensure that:<BR>(a) You are using Xerces 1.2.3 or 1.3.0 (but NOT 1.3.1) - on both the client and the server (if both are using Apache-SOAP).<BR>(b) xerces.jar is the FIRST entry in your CLASSPATH, as described in the Apache-SOAP installation instructions.<BR>(c) There is ONLY ONE version of xerces.jar in your CLASSPATH.<p> 1.3 <STRONG><A NAME="Q1_3">Help! I'm getting this error: "Unable to resolve target object.." when I try to invoke a method on my SOAP service.</A></STRONG><BR> - This is a classpath problem. Ensure that your SOAP service class is included in the classpath. For example if your class is called HelloServer and it is in directory /foo/ then make sure that /foo/ is in your Tomcat classpath when it launches.<p> +This is a classpath problem. Ensure that your SOAP service class is included in the classpath. For example, if your class is called HelloServer and it is in directory /foo/, then make sure that /foo/ is in your Tomcat classpath when it launches.<p> 1.4 <STRONG><A NAME="Q1_4">Help! I got this error message: "Fault String = org.w3c.dom.Node: method getNamespaceURI() java/lang/String; not found"</A></STRONG><BR> - The most likely cause of this problem is a DOM level 1/level 2 issue. <BR>SOAP uses DOM level 2 and you may have DOM level 1 classes (i.e. another XML parser library) included earlier in the classpath. People often find another XML parser hiding in JAVA_HOME\jre\lib\ext.<BR>Ensure that:<BR>(a) You are using Xerces 1.2.3 or 1.3.0 (but NOT 1.3.1).<BR>(b) xerces.jar is the FIRST entry in your CLASSPATH as described in the Apache-SOAP installation instructions.<BR>(c) There is ONLY ONE version of xerces.jar in your CLASSPATH.<p> +The most likely cause of this problem is a DOM level 1/level 2 issue. <BR>SOAP uses DOM level 2, and you may have DOM level 1 classes (i.e. another XML parser library) included earlier in the classpath. People often find another XML parser hiding in JAVA_HOME\jre\lib\ext.<BR>Ensure that:<BR>(a) You are using Xerces 1.2.3 or 1.3.0 (but NOT 1.3.1).<BR>(b) xerces.jar is the FIRST entry in your CLASSPATH, as described in the Apache-SOAP installation instructions.<BR>(c) There is ONLY ONE version of xerces.jar in your CLASSPATH.<p> 1.5 <STRONG><A NAME="Q1_5">Help! The Samples won't work. Every time I run a sample client I get this response: "Fault String = java.lang.NoSuchMethodError"</A></STRONG><BR> - Ensure that:<BR>(a) You have deployed the sample service you want to use. <BR>(b) Xerces.jar is the very first entry in your classpath (set this in tomcat.bat or tomcat.sh as per the SOAP installation instructions).<BR>(c) There are no other XML parsers in your classpath. Some people have experienced this problem due to an early version of the JAXP package hiding in JAVA_HOME/jre/lib/ext.<BR>(d) The sample classes are in the server's CLASSPATH.<p> +Ensure that:<BR>(a) You have deployed the sample service you want to use. <BR>(b) Xerces.jar is the very first entry in your classpath (set this in tomcat.bat or tomcat.sh as per the SOAP installation instructions).<BR>(c) There are no other XML parsers in your classpath. Some people have experienced this problem due to an early version of the JAXP package hiding in JAVA_HOME/jre/lib/ext.<BR>(d) The sample classes are in the server's CLASSPATH.<p> <p><H2><u>2. General</u></H2> 2.1 <STRONG><A NAME="Q2_1">Where can I get help on SOAP issue XYZ?</A></STRONG><BR> - Try subscribing to the soap user mailing list on <A HREF="http://xml.apache.org/soap/mail.html">http://xml.apache.org/soap/mail.html</A> or searching the mailing list archives (see "Where can I find mailing list archives for the soap-user mailing list?" for more information).<p> +Try subscribing to the soap user mailing list on <A HREF="http://xml.apache.org/soap/mail.html">http://xml.apache.org/soap/mail.html</a>, or searching the mailing list archives (see "Where can I find mailing list archives for the soap-user mailing list?" for more information). <BR>You could also have a look at some other SOAP FAQs on this list: <A HREF="http://www.SoapRPC.com/faqs/">http://www.SoapRPC.com/faqs/</a>.<p> 2.2 <STRONG><A NAME="Q2_2">Where can I find mailing list archives for the soap-user mailing list?</A></STRONG><BR> - Try: <A HREF="http://marc.theaimsgroup.com/?l=soap-user&r=1&w=2">http://marc.theaimsgroup.com/?l=soap-user&r=1&w=2</A> or: <A HREF="http://archive.covalent.net/">http://archive.covalent.net/</A>.<p> +Try: <A HREF="http://marc.theaimsgroup.com/?l=soap-user&r=1&w=2">http://marc.theaimsgroup.com/?l=soap-user&r=1&w=2</a> or: <A HREF="http://archive.covalent.net/">http://archive.covalent.net/</a>.<p> 2.3 <STRONG><A NAME="Q2_3">I'm just getting started with SOAP. Where can I find a tutorial on SOAP programming?</A></STRONG><BR> - Try these links: <A HREF="<BR>http://www-106.ibm.com/developerworks/library/ws-peer2/"><BR>http://www-106.ibm.com/developerworks/library/ws-peer2/</A> <A HREF="http://www.perfectxml.com/articles/xml/hellosoap.asp">http://www.perfectxml.com/articles/xml/hellosoap.asp</A> <A HREF="<BR>http://www.javapro.com/upload/free/features/javapro/2001/04apr01/prs0104/prs0104-1.asp<BR>http://www.soaplite.com/#LINKS<BR>http://soap.manilasites.com/<BR>http://www.xmethods.com/gettingstarted/apache.html"><BR>http://www.javapro.com/upload/free/features/javapro/2001/04apr01/prs0104/prs0104-1.asp<BR>http://www.soaplite.com/#LINKS<BR>http://soap.manilasites.com/<BR>http://www.xmethods.com/gettingstarted/apache.html</A> <p> +Try these links: <BR><A HREF="http://www-106.ibm.com/developerworks/library/ws-peer2/">http://www-106.ibm.com/developerworks/library/ws-peer2/</a> <BR><A HREF="http://www.perfectxml.com/articles/xml/hellosoap.asp">http://www.perfectxml.com/articles/xml/hellosoap.asp</a> <BR><A HREF="http://www.javapro.com/upload/free/features/javapro/2001/04apr01/prs0104/prs0104-1.asp">http://www.javapro.com/upload/free/features/javapro/2001/04apr01/prs0104/prs0104-1.asp</a> <BR><A HREF="http://www.soaplite.com/#LINKS">http://www.soaplite.com/#LINKS</a> <BR><A HREF="http://soap.manilasites.com/">http://soap.manilasites.com/</a> <BR><A HREF="http://www.xmethods.com/gettingstarted/apache.html">http://www.xmethods.com/gettingstarted/apache.html</a><p> 2.4 <STRONG><A NAME="Q2_4">Are there any good books on SOAP?</A></STRONG><BR> - See <A HREF="http://www.soaprpc.com/books/">http://www.soaprpc.com/books/</A>.<p> +See <A HREF="http://www.soaprpc.com/books/">http://www.soaprpc.com/books/</a>.<p> 2.5 <STRONG><A NAME="Q2_5">What other SOAP implementations are available?</A></STRONG><BR> - A good list of SOAP implementations is available here: <A HREF="http://directory.google.com/Top/Computers/Programming/Internet/Web_Services/SOAP/Implementations/">http://directory.google.com/Top/Computers/Programming/Internet/Web_Services/SOAP/Implementations/</A> <BR>and here: <A HREF="http://www.soap-wrc.com/webservices/default.asp">http://www.soap-wrc.com/webservices/default.asp</A>.<p> -2.6 <STRONG><A NAME="Q2_6">How do I tell my Apache SOAP client to use a proxy server?</A></STRONG><BR> - Here is some sample code to do this:<BR>SOAPHTTPConnection connection = new SOAPHTTPConnection();<BR>connection.setProxyHost("proxy");<BR>connection.setProxyPort(8080);<p> -2.7 <STRONG><A NAME="Q2_7">How do I perform Proxy Authentication with my Apache SOAP client?</A></STRONG><BR> - See the sample code in the weather service client - it shows how to do proxy authentication. Here is some sample code too:<BR>SOAPHTTPConnection connection = new SOAPHTTPConnection();<BR>connection.setProxyHost("proxy");<BR>connection.setProxyPort(8080);<BR>setProxyUserName("username");<BR>setProxyPassword("password");<p> +A good list of SOAP implementations is available here: <A HREF="http://directory.google.com/Top/Computers/Programming/Internet/Web_Services/SOAP/Implementations/">http://directory.google.com/Top/Computers/Programming/Internet/Web_Services/SOAP/Implementations/</a> <BR>and here: <A HREF="http://www.soap-wrc.com/webservices/default.asp">http://www.soap-wrc.com/webservices/default.asp</a> <BR>and here: <A HREF="http://www.soapware.org/directory/4/implementations">http://www.soapware.org/directory/4/implementations</a><p> +2.6 <STRONG><A NAME="Q2_6">What is meant by the phrase 'SOAP is a wire-level protocol'?</A></STRONG><BR> +A Wire level protocol is a protocol for Cross machine component interaction. DCOM, RMI and CORBA are popular wire level protocols. SOAP is a new technology which brings about cross machine, cross language and cross platform interoperability. You can learn more about this from the following sites: <BR><A HREF="http://www.w3.org/TR/SOAP/">http://www.w3.org/TR/SOAP/</a> <BR><A HREF="http://www.javaworld.com/javaworld/jw-03-2001/jw-0330-soap.html">http://www.javaworld.com/javaworld/jw-03-2001/jw-0330-soap.html</a> <BR><A HREF="http://www.msdn.microsoft.com/soap">http://www.msdn.microsoft.com/soap</a><p> 2.8 <STRONG><A NAME="Q2_8">How do I use TcpTunnel and TcpTunnelGUI?</A></STRONG><BR> - For a short answer see <A HREF="http://marc.theaimsgroup.com/?l=soap-user&m=98628744413873&w=2">http://marc.theaimsgroup.com/?l=soap-user&m=98628744413873&w=2</A>. There is also a great article on IBM's developerWorks site: <A HREF="http://www-106.ibm.com/developerworks/webservices/library/ws-peer3/?dwzone=ws">http://www-106.ibm.com/developerworks/webservices/library/ws-peer3/?dwzone=ws</A>.<p> +For a short answer, see <A HREF="http://marc.theaimsgroup.com/?l=soap-user&m=98628744413873&w=2">http://marc.theaimsgroup.com/?l=soap-user&m=98628744413873&w=2</a>. There is also a great article on IBM's developerWorks site: <A HREF="http://www-106.ibm.com/developerworks/webservices/library/ws-peer3/?dwzone=ws">http://www-106.ibm.com/developerworks/webservices/library/ws-peer3/?dwzone=ws</a>.<p> 2.9 <STRONG><A NAME="Q2_9">How do I use SOAP over SSL?</A></STRONG><BR> - See the Apache-SOAP SSL FAQ: <A HREF="http://xml.apache.org/websrc/cvsweb.cgi/xml-soap/java/docs/install/FAQ_Tomcat_SOAP_SSL.html">http://xml.apache.org/websrc/cvsweb.cgi/xml-soap/java/docs/install/FAQ_Tomcat_SOAP_SSL.html</A> <p> +See the Apache-SOAP SSL FAQ: <A HREF="http://xml.apache.org/websrc/cvsweb.cgi/xml-soap/java/docs/install/FAQ_Tomcat_SOAP_SSL.html">http://xml.apache.org/websrc/cvsweb.cgi/xml-soap/java/docs/install/FAQ_Tomcat_SOAP_SSL.html</a><p> 2.10 <STRONG><A NAME="Q2_10">How do I use SOAP over SMTP?</A></STRONG><BR> - See the Apache-SMTP FAQ available in the soap user mail archives: <A HREF="http://marc.theaimsgroup.com/?l=soap-user&m=98692249417026&q=p3">http://marc.theaimsgroup.com/?l=soap-user&m=98692249417026&q=p3</A> <p> +See the Apache-SOAP and SMTP FAQ, available at <A HREF="http://xml.apache.org/soap/faq/faq_chawke_smtp.html">http://xml.apache.org/soap/faq/faq_chawke_smtp.html</a>, and in the soap user mail archives: <A HREF="http://marc.theaimsgroup.com/?l=soap-user&m=98692249417026&q=p3">http://marc.theaimsgroup.com/?l=soap-user&m=98692249417026&q=p3</a>.<p> 2.11 <STRONG><A NAME="Q2_11">What products are available that will let me use ASP or Perl as SOAP client?</A></STRONG><BR> - See <A HREF="http://www.soap-wrc.com/webservices/default.asp">http://www.soap-wrc.com/webservices/default.asp</A> and also <A HREF="http://www.soaprpc.com/software">http://www.soaprpc.com/software</A> for lists of SOAP libs/packages. A popular Perl implementation is SOAP::Lite - available at <A HREF="http://www.soaplite.com/">http://www.soaplite.com/</A>.<p> +See <A HREF="http://www.soap-wrc.com/webservices/default.asp">http://www.soap-wrc.com/webservices/default.asp</a> and also <A HREF="http://www.soaprpc.com/software">http://www.soaprpc.com/software</a> for lists of SOAP libs/packages. A popular Perl implementation is SOAP::Lite - available at <A HREF="http://www.soaplite.com/">http://www.soaplite.com/</a>.<p> 2.12 <STRONG><A NAME="Q2_12">I'd like to write a SOAP client as a Java applet. Are there any 'tiny' SOAP client libraries I could use?</A></STRONG><BR> - Consider using SoapRMI for your client. It is 183KB (including full XML parser) and is available here: <A HREF="http://www.extreme.indiana.edu/soap/rmi/download/">http://www.extreme.indiana.edu/soap/rmi/download/</A>. For more details about design see: <A HREF="http://www.extreme.indiana.edu/soap/">http://www.extreme.indiana.edu/soap/</A>.<p> +Consider using SoapRMI for your client. It is 183KB (including full XML parser) and is available here: <A HREF="http://www.extreme.indiana.edu/soap/rmi/download/">http://www.extreme.indiana.edu/soap/rmi/download/</a>. For more details about its design, see: <A HREF="http://www.extreme.indiana.edu/soap/">http://www.extreme.indiana.edu/soap/</a>. <BR>You could also consider using IBM's 'Web Services Development Environment' <A HREF="http://www.alphaworks.ibm.com/tech/wsde">http://www.alphaworks.ibm.com/tech/wsde</a> (warning: it is a big download). Among other things, it will automatically generate WSDL files from any java class or COM object, create a browser-based client, and deploy your services to Websphere or Apache.<BR>Also have a look at KSoap - a small-footprint SOAP lib for J2ME: <A HREF="http://ksoap.enhydra.org/index.html">http://ksoap.enhydra.org/index.html</a>.<p> 2.13 <STRONG><A NAME="Q2_13">Where do I find nightly builds of the POP3 and SMTP beans?</A></STRONG><BR> - You'll find them here: <A HREF="http://www.alphaworks.ibm.com/ab.nsf/">http://www.alphaworks.ibm.com/ab.nsf/</A>.<p> +You'll find them here: <A HREF="http://www.alphaworks.ibm.com/ab.nsf/">http://www.alphaworks.ibm.com/ab.nsf/</a>.<p> 2.14 <STRONG><A NAME="Q2_14">Can a SOAP server maintain session between multiple client invocations?</A></STRONG><BR> - It does now! Client-side cookie support was added to Apache SOAP by Sanjiva with the addition of the setMaintainSession function to the SOAPHTTPConnectionclass:<BR> shc = new SOAPHTTPConnection ();<BR> shc.setMaintainSession( true ); // NEW FUNCTION!!<BR> call.setSOAPTransport( shc );<BR>Check out the latest code from CVS and have a look atthe AddressBook2 sample for more details(you'll need to at least get the latest Call.java and SOAPHTTOConnection.java from CVS). <BR>Note that session timeouts can be configured in the servlet container. In the case of Tomcat this is configured in the SOAP entry in web.xml.<p> -2.15 <STRONG><A NAME="Q2_15">How do I use a String array as a parameter to a SOAP service?</A></STRONG><BR> - <xsd:complexType name="ArrayOfString"> <BR> <xsd:complexContent> <BR> <xsd:restriction base="SOAP-ENC:Array"> <BR> <xsd:attribute ref="SOAP-ENC:arrayType"<BR>wsdl:arrayType="xsd:string[]" /><BR> </xsd:restriction> <BR> </xsd:complexContent> <BR></xsd:complexType><BR>NOTE: IBM's WSTK doesn't currently support arrays.<p> +It does now! Client-side cookie support was added to Apache SOAP by Sanjiva with the addition of the setMaintainSession function to the SOAPHTTPConnectionclass:<BR> shc = new SOAPHTTPConnection ();<BR> shc.setMaintainSession( true ); // NEW FUNCTION!!<BR> call.setSOAPTransport( shc );<BR>Check out the latest code from CVS and have a look atthe AddressBook2 sample for more details(you'll need to at least get the latest Call.java and SOAPHTTOConnection.java from CVS). <BR>Note that session timeouts can be configured in the servlet container. In the case of Tomcat, this is configured in the SOAP entry in web.xml.<p> 2.16 <STRONG><A NAME="Q2_16">Is there a way to generate SOAP stub/skeleton from deployment descriptor?</A></STRONG><BR> - Yes you can use the IBM alphawork WSTK toolkit: <A HREF="http://www.alphaworks.ibm.com/tech/webservicestoolkit">http://www.alphaworks.ibm.com/tech/webservicestoolkit</A>.<p> +Yes, you can use the IBM alphawork WSTK toolkit: <A HREF="http://www.alphaworks.ibm.com/tech/webservicestoolkit">http://www.alphaworks.ibm.com/tech/webservicestoolkit</a>.<p> 2.17 <STRONG><A NAME="Q2_17">Is there a way to generate SOAP deployment descriptor from IDL?</A></STRONG><BR> - It could make more sense to transform IDL to WSDL otherwise you will lose information regarding the syntax of method calls if you use<BR>directly the SOAP deployment descriptor.<p> +It might make more sense to transform IDL to WSDL; otherwise you will lose information regarding the syntax of method calls if you directly use the SOAP deployment descriptor.<p> 2.18 <STRONG><A NAME="Q2_18">Is there any way of specifying a timeout for a SOAP method invocation?</A></STRONG><BR> - In Apache-SOAP version 2.1 you can set a timeout on the client side by using:<BR>SOAPHTTPConnection shc;<BR>shc = new SOAPHTTPConnection();<BR>shc.setTimeout(5000); //<-- 5 seconds<BR>Call call = new Call();<BR><BR>call.setSOAPTransport(shc);<p> -2.20 <STRONG><A NAME="Q2_20">What is the best way to send a large file (>10Mb) with a soap request?</A></STRONG><BR> - As a MIME attachment. Note that this will use a lot of memory because the entire file is read into memory before it is sent.<p> +In Apache-SOAP version 2.1 you can set a timeout on the client side by using:<BR>SOAPHTTPConnection shc;<BR>shc = new SOAPHTTPConnection();<BR>shc.setTimeout(5000); //<-- 5 seconds<BR>Call call = new Call();<BR><BR>call.setSOAPTransport(shc);<p> +2.19 <STRONG><A NAME="Q2_19">Can Apache-SOAP handle large (multiple megabyte) files?</A></STRONG><BR> +Yes. People on the soap-user mailing have reported that they have been able to successfully transfer files of up to 20Mb in size using Apache-SOAP.<p> +2.20 <STRONG><A NAME="Q2_20">What is the best way to send a large file (multiple megabytes) with a soap request?</A></STRONG><BR> +As a MIME attachment. Note that this will use a lot of memory, because in the current Apache-SOAP implementation, the entire file is read into memory before it is sent. See <A HREF="http://xml.apache.org/soap/docs/guide/attachments.html">http://xml.apache.org/soap/docs/guide/attachments.html</a> for more information.<p> 2.21 <STRONG><A NAME="Q2_21">Help! I got the following error message: "SOAP Service Manager: Unable to read 'DeployedServices.ds': assuming fresh start"</A></STRONG><BR> - This message will appear the first time you run SOAP as the file does not exist and needs to be created for the first time. Don't worry - it is just a warning not an error.<p> -2.22 <STRONG><A NAME="Q2_22">How can I generate a WSDL file for my SOAP service?</A></STRONG><BR> - You can use IBM web services toolkit - WSTK - (class<BR>com.ibm.wstk.swrapper.ui.SWrapperGUI) on <A HREF="http://www.alphaworks.ibm.com/tech/wsde">http://www.alphaworks.ibm.com/tech/wsde</A> or IBM Web services development environment on <A HREF="http://www.alphaworks.ibm.com/tech/webservicestoolkit/.<BR>You">http://www.alphaworks.ibm.com/tech/webservicestoolkit/.<BR>You</A> could also consider using GLUE which includes a command line tool for static generation of WSDL: <A HREF="http://www.themindelectric.com/">http://www.themindelectric.com/</A>.<p> -2.23 <STRONG><A NAME="Q2_23">Is there a tool that can validate WSDL?</A></STRONG><BR> - Yes Simon Fell has written a Schematron-based validator for SOAP oriented WSDL documents. See here: <A HREF="http://www.pocketsoap.com/wsdl/">http://www.pocketsoap.com/wsdl/</A>.<p> +This message will appear the first time you run SOAP, as the file does not exist and needs to be created for the first time. Don't worry - it is just a warning, not an error.<p> 2.25 <STRONG><A NAME="Q2_25">Is it possible to pass parameters to the constructor in a SOAP application ?</A></STRONG><BR> - No unfortunately it isn't. The SOAP server requires that you have a public no-argument constructor - this is what used to create an instance of your target service provider. <BR>An alternative to parameter passing is to load the information you need from a property file.<p> +No, unfortunately it isn't. The SOAP server requires that you have a public no-argument constructor - this is what used to create an instance of your target service provider. <BR>An alternative to parameter passing is to load the information you need from a property file.<p> 2.26 <STRONG><A NAME="Q2_26">How do I write a SOAP service that maintains state across a session?</A></STRONG><BR> - Both the client and the server have to be modified to use maintain state across a session:<BR><BR>(a) Setting the scope to "Session" tells the server-side to store the target object in the context of the session. You do this in the deployment descriptor (scope="Session"). <BR><BR>(b) The client side needs to be told to return the cookies that help the maintain sessions:<BR> // Build the call.<BR> Call call = new Call();<BR> // We require the session to be maintained<BR> SOAPHTTPConnection conn = new SOAPHTTPConnection();<BR> conn.setMaintainSession(true);<BR> call.setSOAPTransport(conn); <BR><BR>See the samples.addressbook2.Main sample code for a detailed example of how to do this.<p> -2.27 <STRONG><A NAME="Q2_27">Where can I find the WSDL specification document?</A></STRONG><BR> - The WSDL specification document is available <A HREF="at<BR>http://www.w3.org/TR/wsdl">at<BR>http://www.w3.org/TR/wsdl</A>.<p> +Both the client and the server have to be modified to use maintain state across a session:<BR><BR>(a) Setting the scope to "Session" tells the server-side to store the target object in the context of the session. You do this in the deployment descriptor (scope="Session"). <BR><BR>(b) The client side needs to be told to return the cookies that help the maintain sessions:<BR> // Build the call.<BR> Call call = new Call();<BR> // We require the session to be maintained<BR> SOAPHTTPConnection conn = new SOAPHTTPConnection();<BR> conn.setMaintainSession(true);<BR> call.setSOAPTransport(conn); <BR><BR>See the samples.addressbook2.Main sample code for a detailed example of how to do this.<p> +2.27 <STRONG><A NAME="Q2_27">How do I tell my Apache SOAP client to use a proxy server?</A></STRONG><BR> +Here is some sample code to do this:<BR>SOAPHTTPConnection connection = new SOAPHTTPConnection();<BR>connection.setProxyHost("proxy");<BR>connection.setProxyPort(8080);<p> +2.28 <STRONG><A NAME="Q2_28">How do I perform Proxy Authentication with my Apache SOAP client?</A></STRONG><BR> +See the sample code in the weather service client - it shows how to do proxy authentication. Here is some sample code too:<BR>SOAPHTTPConnection connection = new SOAPHTTPConnection();<BR>connection.setProxyHost("proxy");<BR>connection.setProxyPort(8080);<BR>setProxyUserName("username");<BR>setProxyPassword("password");<p> +2.31 <STRONG><A NAME="Q2_31">Where can I find a list of public SOAP services that are available on the Internet?</A></STRONG><BR> +Salcentral maintain a searchable list of web services here: <A HREF="http://www.salcentral.com/.<BR>Xmethods">http://www.salcentral.com/.<BR>Xmethods</a> have a list here as well: <A HREF="http://www.xmethods.org/">http://www.xmethods.org/</a>.<p> <p><H2><u>3. Installation</u></H2> 3.0 <STRONG><A NAME="Q3_0">Can I install Apache-SOAP 2.1 on Tomcat 4.0 beta?</A></STRONG><BR> - Catalina (Tomcat 4) uses a different class loading model to the tomcat 3.* series so if you follow the Tomcat instructions in the soap distribution when the soap web application is loaded it will not be able to find org.apache.soap.* or the SAX classes needed. However it should work If you put xerces.jar and soap.jar into the lib directory under WEB-INF under your web application.<p> +Catalina (Tomcat 4) uses a different class loading model to the tomcat 3.* series, so if you follow the Tomcat instructions in the soap distribution, when the soap web application is loaded it will not be able to find org.apache.soap.* or the SAX classes needed. However, it should work if you put xerces.jar and soap.jar into the lib directory under WEB-INF under your web application.<p> 3.1 <STRONG><A NAME="Q3_1">How do I install Apache-SOAP on Tomcat?</A></STRONG><BR> - Follow the instructions that are included with the Apache-SOAP distribution. Make sure that you read the instructions carefully as there are a bunch of 'gotchas'.<BR>Xmethods.com have a good tutorial which includes setup information: <A HREF="http://www.xmethods.com/gettingstarted/apache.html">http://www.xmethods.com/gettingstarted/apache.html</A> <p> +Follow the instructions that are included with the Apache-SOAP distribution. Make sure that you read the instructions carefully as there are a bunch of 'gotchas'.<BR>Xmethods.com have a good tutorial which includes setup information: <A HREF="http://www.xmethods.com/gettingstarted/apache.html">http://www.xmethods.com/gettingstarted/apache.html</a><p> 3.2 <STRONG><A NAME="Q3_2">How do I install Apache-SOAP on Bea WebLogic 6.0?</A></STRONG><BR> - Dion Almaer has written an article about this: <A HREF="http://www.almaer.com/weblogic60.html">http://www.almaer.com/weblogic60.html</A>. There are some additional comments here: <A HREF="http://marc.theaimsgroup.com/?l=soap-user&m=98808422428291&w=2">http://marc.theaimsgroup.com/?l=soap-user&m=98808422428291&w=2</A>.<p> +Dion Almaer has written an article about this: <A HREF="http://www.almaer.com/weblogic60.html">http://www.almaer.com/weblogic60.html</a>. There are some additional comments here: <A HREF="http://marc.theaimsgroup.com/?l=soap-user&m=98808422428291&w=2">http://marc.theaimsgroup.com/?l=soap-user&m=98808422428291&w=2</a>.<p> 3.3 <STRONG><A NAME="Q3_3">How do I install Apache-SOAP on Resin?</A></STRONG><BR> - Under Resin 1.2.3 configure a web app to point to the soap webapp directory (i.e.<path-to-apache-soap>/webapps/soap).<p> +Under Resin 1.2.3, configure a web app to point to the soap webapp directory (i.e.<path-to-apache-soap>/webapps/soap).<p> 3.4 <STRONG><A NAME="Q3_4">How do I install Apache-SOAP on IBM WebSphere?</A></STRONG><BR> - Wouter Cloetens has provided instructions on using Apache-SOAP with IBM Websphere v1 v2 and v3.0 on <A HREF="http://workspot.net/~zombie/soap/.<BR>There">http://workspot.net/~zombie/soap/.<BR>There</A> are also instructions for WebSphere v3.5 in the Apache-SOAP distribution - see <A HREF="http://xml.apache.org/websrc/cvsweb.cgi/~checkout~/xml-soap/java/docs/install/websphere.html?rev=1.1&content-type=text/html&only_with_tag=MAIN">http://xml.apache.org/websrc/cvsweb.cgi/~checkout~/xml-soap/java/docs/install/websphere.html?rev=1.1&content-type=text/html&only_with_tag=MAIN</A>.<p> +Wouter Cloetens has provided instructions on using Apache-SOAP with IBM Websphere v1, v2, and v3.0 on <A HREF="http://workspot.net/~zombie/soap/">http://workspot.net/~zombie/soap/</a>. There are also instructions for WebSphere v3.5 in the Apache-SOAP distribution - see <A HREF="http://xml.apache.org/websrc/cvsweb.cgi/~checkout~/xml-soap/java/docs/install/websphere.html?rev=1.1&content-type=text/html&only_with_tag=MAIN">http://xml.apache.org/websrc/cvsweb.cgi/~checkout~/xml-soap/java/docs/install/websphere.html?rev=1.1&content-type=text/html&only_with_tag=MAIN</a>.<p> 3.5 <STRONG><A NAME="Q3_5">How do I install Apache-SOAP on Bluestone?</A></STRONG><BR> - The Bluestone people provide a download with instructions and samples: <A HREF="http://gallery.bluestone.com/scripts/SaISAPI.dll/Gallery.class/techDownloads/index.jsp">http://gallery.bluestone.com/scripts/SaISAPI.dll/Gallery.class/techDownloads/index.jsp</A> <p> +The Bluestone people provide a download with instructions and samples: <A HREF="http://gallery.bluestone.com/scripts/SaISAPI.dll/Gallery.class/techDownloads/index.jsp">http://gallery.bluestone.com/scripts/SaISAPI.dll/Gallery.class/techDownloads/index.jsp</a><p> 3.6 <STRONG><A NAME="Q3_6">How do I install Apache-SOAP on Orion?</A></STRONG><BR> - Have a look here: <A HREF="http://marc.theaimsgroup.com/?l=soap-dev&m=97678072329144&q=p3">http://marc.theaimsgroup.com/?l=soap-dev&m=97678072329144&q=p3</A> <p> +Have a look here: <A HREF="http://marc.theaimsgroup.com/?l=soap-dev&m=97678072329144&q=p3">http://marc.theaimsgroup.com/?l=soap-dev&m=97678072329144&q=p3</a>.<p> 3.7 <STRONG><A NAME="Q3_7">How do I install Apache-SOAP on Apache-JServ?</A></STRONG><BR> - Here are some instructions: <A HREF="http://marc.theaimsgroup.com/?l=soap-user&m=98890652006035&w=2">http://marc.theaimsgroup.com/?l=soap-user&m=98890652006035&w=2</A>.<p> +Here are some instructions: <A HREF="http://marc.theaimsgroup.com/?l=soap-user&m=98890652006035&w=2">http://marc.theaimsgroup.com/?l=soap-user&m=98890652006035&w=2</a>.<p> 3.8 <STRONG><A NAME="Q3_8">How do I install Apache-SOAP on iPlanet?</A></STRONG><BR> - See Erik Onnen's article here: <A HREF="http://marc.theaimsgroup.com/?l=soap-user&m=98753020626284&q=p3">http://marc.theaimsgroup.com/?l=soap-user&m=98753020626284&q=p3</A>.<p> +See Erik Onnen's article here: <A HREF="http://marc.theaimsgroup.com/?l=soap-user&m=98753020626284&q=p3">http://marc.theaimsgroup.com/?l=soap-user&m=98753020626284&q=p3</a>.<p> 3.10 <STRONG><A NAME="Q3_10">How do I install Apache-SOAP on Unify's ServletExec?</A></STRONG><BR> - See <A HREF="http://marc.theaimsgroup.com/?l=soap-user&m=97741067209680&w=2">http://marc.theaimsgroup.com/?l=soap-user&m=97741067209680&w=2</A> <p> +See <A HREF="http://marc.theaimsgroup.com/?l=soap-user&m=97741067209680&w=2">http://marc.theaimsgroup.com/?l=soap-user&m=97741067209680&w=2</a>.<p> <p><H2><u>4. Troubleshooting</u></H2> 4.2 <STRONG><A NAME="Q4_2">Help! Visual Age can't compile SOAP - it says I'm missing package com.ibm.xmi.job.*</A></STRONG><BR> - These classes can be downloaded from <A HREF="http://www.alphaworks.ibm.com/aw.nsf/textformula/bc977085639b0fb888256a10006">http://www.alphaworks.ibm.com/aw.nsf/textformula/bc977085639b0fb888256a10006</A>. The missing package is a xmisoap.jar which contains the following files: <BR>com.ibm.xmi.framework.* <BR>com.ibm.xmi.job.* <BR>com.ibm.xmi.utility.*<p> +These classes can be downloaded from <A HREF="http://www.alphaworks.ibm.com/aw.nsf/textformula/bc977085639b0fb888256a10006">http://www.alphaworks.ibm.com/aw.nsf/textformula/bc977085639b0fb888256a10006</a>. The missing package is a xmisoap.jar, which contains the following files: <BR>com.ibm.xmi.framework.* <BR>com.ibm.xmi.job.* <BR>com.ibm.xmi.utility.*<p> +4.5 <STRONG><A NAME="Q4_5">Help! I try to run my SOAP client I get this message: "Unsupported response content type "text/html", must be: "text/xml". Response was: HTTP Error 405 - Method Not Allowed".</A></STRONG><BR> +Check that your client is connecting to port 8080 (i.e. <A HREF="http://localhost:8080/">http://localhost:8080/</a> rather than <A HREF="http://localhost/">http://localhost/</a>). You might accidentally be connecting to a web server (e.g. Apache or IIS) instead of your SOAP/Tomcat server.<p> 4.7 <STRONG><A NAME="Q4_7">Help! I'm using Tomcat+SOAP on Linux. When I try to access the SOAP admin page, Tomcat crashes and I see this message: "HotSpot Virtual Machine Error, Unexpected Signal 11"</A></STRONG><BR> - This may be related to a jdk1.3 bug on linux; try<BR>- using jdk1.2<BR>- using the -server or -client option on the jdk1.3 JVM<p> - - -<p><H2><u>5. SOAP and .NET</u></H2> -5.3 <STRONG><A NAME="Q5_3">Help! My Apache SOAP Client cannot connect to a .NET service - the server says it expects 'text/xml' and doesn't understand "text/xml; charset=utf-8".</A></STRONG><BR> - There is also a kludgy workaround to allow an Apache-SOAP client to send the request with just "text/xml" in the Content-Type header. See some of the examples e.g. samples/xmethods/GetTemp.java.<BR>SOAP users have also commented that if you upgrade to MSSoap toolkit 2.0 beta2 (or even rc0) this problem seems to go away.<p> +This may be related to a JDK 1.3 bug on Linux; try<BR>- Using JDK 1.2<BR>- Using the -server or -client option on the JDK 1.3 JVM<p> +4.8 <STRONG><A NAME="Q4_8">Help! I just upgraded Apache-SOAP. When I run the service manager I get the following error: "javax.servlet.ServletException: Cannot create bean of class org.apache.soap.server.ServiceManager"</A></STRONG><BR> +Delete the JSP work files that were stored by your JSP server, so that they are re-generated using the new SOAP classes. In the case of tomcat, these should be in a directory that looks like this: $TOMCAT_HOME/work/localhost_8080/%2Fsoap.<p> +4.9 <STRONG><A NAME="Q4_9">Help! Apache won't integrate with IIS: it says that the message content type should be text/xml but it is read as text/xml. What do I do?</A></STRONG><BR> +This problem occurs because IIS sends this data:<BR>Content-Type:text/xml; charset=utf-8<BR>But Apache-SOAP sends this data:<BR>Content-Type: text/xml; charset=utf-8 <BR>(Note the space after 'Content-Type').<BR>The problem has been fixed - upgrade to v2.2 or later of Apache-SOAP and it should go away.<p> +4.10 <STRONG><A NAME="Q4_10">Help! I'm getting this error: "java.io.InvalidClassException: +org.apache.soap.server.DeploymentDescriptor; Local class not compatible"</A></STRONG><BR> +The most likely cause of this problem is that you upgraded your JVM. A class that is serialized can only be deserialized with the same version of the JVM. Re-deploy your services using your new JVM and the problem should be solved.<p> + + +<p><H2><u>5. WSDL</u></H2> +5.1 <STRONG><A NAME="Q5_1">Where can I find the WSDL specification document?</A></STRONG><BR> +The WSDL specification document is available at <A HREF="http://www.w3.org/TR/wsdl">http://www.w3.org/TR/wsdl</a>.<p> +5.2 <STRONG><A NAME="Q5_2">How can I generate a WSDL file for my SOAP service?</A></STRONG><BR> +You can use IBM web services toolkit - WSTK - (class<BR>com.ibm.wstk.swrapper.ui.SWrapperGUI) on <A HREF="http://www.alphaworks.ibm.com/tech/wsde">http://www.alphaworks.ibm.com/tech/wsde</a>, or IBM Web services development environment on <A HREF="http://www.ibm.com/developerworks/webservices">http://www.ibm.com/developerworks/webservices</a>. You could also consider using GLUE, which includes a command line tool for static generation of WSDL: <A HREF="http://www.themindelectric.com/">http://www.themindelectric.com/</a>. <BR>The Apache AXIS folks are also working on a tool called java2wsdl. See <A HREF="http://xml.apache.org/axis/">http://xml.apache.org/axis/</a> for more information.<p> +5.3 <STRONG><A NAME="Q5_3">Is there a tool that can validate WSDL?</A></STRONG><BR> +Yes: Simon Fell has written a Schematron-based validator for SOAP oriented WSDL documents. See here: <A HREF="http://www.pocketsoap.com/wsdl/">http://www.pocketsoap.com/wsdl/</a>.<p> +5.4 <STRONG><A NAME="Q5_4">Is there a command-line utility that I can use to generate a WSDL File?</A></STRONG><BR> +Yes - the IBM web services toolkit (WSTK) 2.3 (<A HREF="http://www.ibm.com/developerworks/webservices/">http://www.ibm.com/developerworks/webservices/</a>) includes a utility called 'wsdlgen'. It is in WSTK_HOME/bin.<p> +5.5 <STRONG><A NAME="Q5_5">Is there a command-line utility that I can use to generate WSDL stub and skeleton files?</A></STRONG><BR> +Yes - the IBM web services toolkit (<A HREF="http://www.ibm.com/developerworks/webservices/">http://www.ibm.com/developerworks/webservices/</a>) includes a command-line java application that should do what you want: <BR>.com.ibm.wsdl.Main -?<BR>Note that:<BR>(a) It is in the wsdl.jar library.<BR>(b) Passing in '-?' (without the appostrophes) gets you a list of available commands that the class supports.<p> + + +<p><H2><u>6. SOAP and .NET</u></H2> +6.3 <STRONG><A NAME="Q6_3">Help! My Apache SOAP Client cannot connect to a .NET service - the server says it expects 'text/xml' and doesn't understand "text/xml; charset=utf-8".</A></STRONG><BR> +There is also a kludgy workaround to allow an Apache-SOAP client to send the request with just "text/xml" in the Content-Type header. See some of the examples, e.g. samples/xmethods/GetTemp.java.<BR>SOAP users have also commented that if you upgrade to MSSoap toolkit 2.0 beta2 (or even rc0), this problem seems to go away.<p> </OL> <HR NOSHADE TITLE="Page Footer"></BODY></HTML> -
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
