You are viewing a plain text version of this content. The canonical link for it is here.
Posted to soap-user@xml.apache.org by Colin Saxton <cc...@exel.co.uk> on 2001/05/18 12:55:42 UTC

RE: Apache SOAP 2.1 example does not work with JBoss 2.2.1 with e mbedded Tomcat 3.2.1 (Long and involved)

Make sure that you set

xerces.jar
soap.jar
activation.jar
mail.jar

into the classpath as the first jars before any other!

Keep me informed and I will try to help (Email me on ccs@efacs.com) to get
me directly 

-----Original Message-----
From: Adam Lipscombe [mailto:adam@cobar.demon.co.uk]
Sent: 18 May 2001 11:51
To: Apache SOAP Mailing List; JBoss User Mailing List
Subject: Apache SOAP 2.1 example does not work with JBoss 2.2.1 with
embedded Tomcat 3.2.1 (Long and involved)


Folks,


I am tearing my hair out trying to get the SOAP 2.1 examples to work with
JBoss.
Any help will be very gratefully received.....



Set-up:

NT 4.0, JDK 1.3, Apache Soap 2.1, JBoss 2.2.1 / Embedded Tomcat 3.2.1,
Xerces 1.2.3.
(Already been through the Xerces 1.3.1 pain :-))

soap.jar and xerces.jar are located in the tomcat\lib dir.
Presumably they are picked up automatically by Tomcat from there?

The Jboss run.bat file is:
-----
@echo off
@if not "%ECHO%" == ""  echo %ECHO%
@if "%OS%" == "Windows_NT"  setlocal


set JBOSS_CLASSPATH=%JBOSS_CLASSPATH%;run.jar

REM Add all login modules for JAAS-based security
REM and all libraries that are used by them here
set JBOSS_CLASSPATH=;%JBOSS_CLASSPATH%

REM Add the XML parser jars and set the JAXP factory names
REM Crimson parser JAXP setup(default)
REM set JBOSS_CLASSPATH=%JBOSS_CLASSPATH%;../lib/crimson.jar
REM set
JAXP=-Djavax.xml.parsers.DocumentBuilderFactory=org.apache.crimson.jaxp.Docu
mentBuilderFactoryImpl
REM set
JAXP=%JAXP% -Djavax.xml.parsers.SAXParserFactory=org.apache.crimson.jaxp.SAX
ParserFactoryImpl

REM Added Xerces XML parser. A.L.
set JBOSS_CLASSPATH=%JBOSS_CLASSPATH%;..\..\tomcat\lib\xerces.jar
set
JAXP=-Djavax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.Docum
entBuilderFactoryImpl
set
JAXP=%JAXP% -Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXP
arserFactoryImpl


REM Add Apache SOAP samples for testing. A.L.
set JBOSS_CLASSPATH=%JBOSS_CLASSPATH%;D:\Development\Landmark\Soap\soap-2_1;


echo JBOSS_CLASSPATH=%JBOSS_CLASSPATH%
java %JAXP% -classpath "%JBOSS_CLASSPATH%" org.jboss.Main %1 %2 %3 %4 %5 %6
%7 %8 %9

pause
-----

Note crimson is commented out and xerces is used instead.
Also "D:\Development\Landmark\Soap\soap-2_1"  added to classpath so the
server can find the example classes.


The stockquote examples deploy and undeploy OK, however when running the
GetQuote() test it fails.

The output from "java samples.stockquote.GetQuote
http://localhost:8989/soap/servlet/rpcrouter IBM" is:
-----
Ouch, the call failed:
  Fault Code   = SOAP-ENV:Server.Exception:
  Fault String = org/apache/soap/util/xml/XMLParserLiaison
-----

The tunnel monitor displays:
------
<faultcode>SOAP-ENV:Server.Exception:</faultcode>
<faultstring>org/apache/soap/util/xml/XMLParserLiaison</faultstring>
<faultactor>/soap/servlet/rpcrouter</faultactor>
<detail>
<stackTrace>java.lang.NoClassDefFoundError:
org/apache/soap/util/xml/XMLParserLiaison
 	at java.lang.Class.forName0(Native Method) 	at
java.lang.Class.forName(Class.java:120)
	at
org.apache.soap.server.http.ServerHTTPUtils.getTargetObject(ServerHTTPUtils.
java:224)
	at
org.apache.soap.providers.RPCJavaProvider.locate(RPCJavaProvider.java:113)
	at
org.apache.soap.server.http.RPCRouterServlet.doPost(RPCRouterServlet.java:26
5)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at
org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
	at org.apache.tomcat.core.Handler.service(Handler.java:286)
	at
org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
	at
org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:79
7)
	at
org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
	at
org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpC
onnectionHandler.java:210)
	at
org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
	at
org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
	at java.lang.Thread.run(Thread.java:484)
</stackTrace>
-----


It seems to me that the server cant find soap.jar,as this contains the
org/apache/soap/util/xml/XMLParserLiaison class.
So, I added  soap.jar to the run.bat classpath thus:

-----
REM Add Apache SOAP samples for testing. A.L.
set
JBOSS_CLASSPATH=%JBOSS_CLASSPATH%;.\..\tomcat\lib\soap.jar;D:\Development\La
ndmark\Soap\soap-2_1;
-----


This causes mayhem. The example wont deploy or undeploy.

The output from GetQuote is:

Exception in thread "main" [SOAPException: faultCode=SOAP-ENV:Protocol;
msg=Unsupported response content type "text/html
", must be: "text/xml". Response was:
<h1>Error: 500</h1>
<h2>Location: /soap/servlet/rpcrouter</h2><b>Internal Servlet
Error:</b><br><pre>java.lang.NoClassDefFoundError: javax/s
ervlet/http/HttpServlet
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
        at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:111)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:290)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
        at
org.apache.tomcat.loader.AdaptiveClassLoader.loadClass(AdaptiveClassLoader.j
ava:446)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
        at
org.apache.tomcat.loader.AdaptiveClassLoader.loadClass(AdaptiveClassLoader.j
ava:446)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
        at
org.apache.tomcat.loader.AdaptiveClassLoader.loadClass(AdaptiveClassLoader.j
ava:446)
        at
org.apache.tomcat.loader.AdaptiveServletLoader.loadClass(AdaptiveServletLoad
er.java:174)
        at
org.apache.tomcat.core.ServletWrapper.loadServlet(ServletWrapper.java:265)
        at
org.apache.tomcat.core.ServletWrapper.init(ServletWrapper.java:289)
        at org.apache.tomcat.core.Handler.service(Handler.java:254)
        at
org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
        at
org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:79
7)
        at
org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
        at
org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpC
onnectionHandler.java:210)
        at
org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
        at
org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
        at java.lang.Thread.run(Thread.java:484)
</pre>

]
        at org.apache.soap.rpc.Call.getEnvelopeString(Call.java:173)
        at org.apache.soap.rpc.Call.invoke(Call.java:210)
        at samples.stockquote.GetQuote.main(GetQuote.java:10


And the tunnel monitor displays:

HTTP/1.0 500
Internal Server Error Content-Type: text/html
Servlet-Engine: Tomcat Web Server/3.2.1 (JSP 1.1; Servlet 2.2; Java 1.3.0;
Windows NT 4.0 x86; java.vendor=Sun Microsystems Inc.)
<h1>Error: 500</h1>
<h2>Location: /soap/servlet/rpcrouter</h2><b>Internal Servlet
Error:</b><br><pre>java.lang.NoClassDefFoundError:
javax/servlet/http/HttpServlet
	at java.lang.ClassLoader.defineClass0(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
	at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:111)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:290)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
	at
org.apache.tomcat.loader.AdaptiveClassLoader.loadClass(AdaptiveClassLoader.j
ava:446)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
	at
org.apache.tomcat.loader.AdaptiveClassLoader.loadClass(AdaptiveClassLoader.j
ava:446)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
	at
org.apache.tomcat.loader.AdaptiveClassLoader.loadClass(AdaptiveClassLoader.j
ava:446)
	at
org.apache.tomcat.loader.AdaptiveServletLoader.loadClass(AdaptiveServletLoad
er.java:174)
	at
org.apache.tomcat.core.ServletWrapper.loadServlet(ServletWrapper.java:265)
	at
org.apache.tomcat.core.ServletWrapper.init(ServletWrapper.java:289)
	at org.apache.tomcat.core.Handler.service(Handler.java:254)
	at
org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
	at
org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:79
7)
	at
org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
	at
org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpC
onnectionHandler.java:210)
	at
org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
	at
org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
	at java.lang.Thread.run(Thread.java:484)
</pre>





Any ideas what I am doing wrong here?

Without soap.jar in the classpath it seems the
org/apache/soap/util/xml/XMLParserLiaison class cant be found, despite
soap.jar being present in the tomcat\lib dir.

If I add soap.jar explicitly to the classpath it seems to stuff the
classpath completely and all hell breaks loose.



All ideas gratefully received :-)


Cheers - Adam


---------------------------------------------------------------------
To unsubscribe, e-mail: soap-user-unsubscribe@xml.apache.org
For additional commands, email: soap-user-help@xml.apache.org


_____________________________________________________________________
This message has been checked for all known viruses by Star Internet
delivered through the MessageLabs Virus Scanning Service. For further
information visit http://www.star.net.uk/stats.asp

---------------------------------------------------------------------
To unsubscribe, e-mail: soap-user-unsubscribe@xml.apache.org
For additional commands, email: soap-user-help@xml.apache.org