[prev in list] [next in list] [prev in thread] [next in thread]
List: soap-user
Subject: Re: Installation on iPlanet Web Server 6.0 SP3
From: "Jesus M. Salvo Jr." <jesus.salvo () migasia ! com>
Date: 2003-01-28 4:14:01
[Download RAW message or body]
Okay ...
Somehow, somewhere .. I finally was able to make it work. Here's what I did:
1) Undeployed Apache-SOAP and all references to soap.jar. Restart iWS
2) Make sure you are using JDK 1.3.1 ( which I am already before ) as
specified at http://docs.sun.com/source/817-0540-10/app_c1.html#14137
3) Add Apache-SOAP runtime ( soap.jar ) and other related JAR files to
iWS classpath ( e.g.: jvm.classpath in config/jvm12.conf, also specified
in http://docs.sun.com/source/817-0540-10/app_c1.html#14137)
4) Deployed Apache-SOAP ( using wdeploy ... also specified in
http://docs.sun.com/source/817-0540-10/app_c1.html#14137 ). This should
explode soap.war into a directory you specify via the -d option of wdeploy.
5) Restart iWS. Test that Apache-SOAP is running ( e.g. point browser to
http://x.x.x.x:/soap/servlet and test the links )
..so far so good ... but not good enough since I had the same result
last week where Apache-SOAP is working by my service could not load a
class that comes with Apache-SOAP.
At this point, there are 2 places where the iWS classloader(s) can load
the Apache-SOAP libraries: in soap.jar ( from jvm.classpath in
config/jvm12.conf ) and in the exploded soap.war.
6) Deployed my SOAP service by adding the JAR containing the service in
the directory of the exploded soap.war ( e.g.: in WEB-INF/lib )
7) Test my service ... but I am getting a faultcode of
SOAP-ENV:Server.BadTargetObjectURI... complaining that it cannot find
the class for the service that I deployed.
8) Restart iWS, just in case it did not load the new JAR, then test my
SOAP service again ... still cannot find the class.
9) Removed soap.jar from jvm.classpath in config/jvm12.conf ...
restarted iWS
10) Retest my SOAP service ... finally loaded my classes!
So JARs loaded from jvm.classpath in the config/jvm12.conf file are
loaded versus those deployed as a web application ( via wdeploy ) are
using different classloaders ... so much so that if soap.jar is in
jvm.classpath in the config/jvm12.conf file, it would expect that SOAP
service to be in that classpath as well ( did not try that ). The
alternative that I did was to simply remove soap.jar from the
jvm.classpath in the config/jvm12.conf .... and put my JAR in the
exploded soap.war, so that Apache-SOAP and my service are loaded by the
same classloader.
Now there are a few more things to consider:
11) iPlanet6 has its own built-in JARs for JAXP, Crimson, and Xalan ( in
servers/https/jar ). If your SOAP service relies on the newer versions
of theses APIs, you will need to override those built-in with IPlanet6
iWs with the newer versions by putting the new JAR files in
jvm.classpath of config/jvm12.conf, then restart iWS.
Jesus M. Salvo Jr. wrote:
>
> I checked all that I can find .... there are only 2 places that
> Apache-SOAP is loaded:
>
> 1) exploded soap.war -- This was the case before I added soap.jar into
> the server's classpath.
>
> 2) soap.jar
>
> What is interesting is that both the documentation at Sun ( for
> iPlanet WebServer 6.0 ) and at Apache-SOAP ( for iPlanet Application
> Server 6.0 though ) says that you should add soap.jar into the
> server's classpath __AND__ deploy soap.war. Just wondering why the
> need to do both.
>
> Anyway ... anyone has any code / tools to determine from which JAR or
> directory a specific class is loaded from? ( ... and which
> classloader, if possible )?
>
>
> Scott Nichol wrote:
>
>> I have no experience with iWS, but plenty of experience with weird
>> class loader issues. Since iWS is claiming it cannot load a class
>> that seems to be in the exploded soap.war, it is very likely that
>> some class in soap.war was loaded from another location. If you have
>> soap.jar in the classpath used by iWS, or some magic directory iWS
>> loads stuff from, or in $JAVA_HOME/jre/lib/ext, that may be the cause
>> of the error. Check everything you can to be sure there is exactly
>> one place from which to load the Apache SOAP classes, namely the
>> directory with the exploded war.
>>
>> On 24 Jan 2003 at 12:07, Jesus M. Salvo Jr. wrote:
>>
>>
>>
>>> Anyone installed Apache SOAP 2.3.1 on IPlanet Webserver ( IWS )6.0 SP3?
>>> I currently have Apache SOAP 2.3.1 installed and working okay
>>> including my SOAP services on Tomcat 4.1.8., but I would also like
>>> to use it with iPlanet Webserver 6.0 ( includes support for Servlet
>>> 2.2 and JSP 1.1 ).. The installation documentation at Apache SOAP
>>> web site is for iPlanet _Application_ Server, not iPlanet Webserver
>>> ( different beasts altogether )
>>>
>>> The problem I am having is that the Apache SOAP installation seems
>>> to have worked fine by doing the following:
>>>
>>> * Deployed soap.war via the Web GUI tool to deploy a web
>>> application. This extracted soap.war into
>>> /usr/iplanet/servers/<server-name>/web-apps/soap ( This directory is
>>> specified during the deployment in the previous step )
>>> * Restarted IWS just to make sure.
>>> * Able to point my browser to http://192.168.0.82/soap
>>> * Able to view the Apache SOAP admin page, list deployed services,
>>> etc ...
>>> * Able to view http://192.168.0.82/soap/rpcrouter and it said:
>>> "Sorry, I don't speak via HTTP GET- you have to use HTTP POST to
>>> talk to me."
>>> * Able to deploy my SOAP messaging services via the Apache SOAP
>>> command line ( java org.apache.soap.server.ServiceManagerClient
>>> http://192.168.0.82/soap/servlet/rpcrouter deploy mm7.xml ) .. where
>>> mm7.xml is the SOAP deployment descriptor
>>>
>>> So what's my problem?
>>>
>>> When I send a message to my SOAP messaging service, I get the
>>> following SOAP fault back from the server:
>>> <faultcode>SOAP-ENV:Server.Exception:</faultcode>
>>> <faultstring>org/apache/soap/util/xml/XMLJavaMappingRegistry</faultstring>
>>> <faultactor>/soap/servlet/messagerouter</faultactor>
>>> <detail>
>>> <stackTrace>java.lang.NoClassDefFoundError:
>>> org/apache/soap/util/xml/XMLJavaMappingRegistry
>>> at java.lang.Class.forName0(Native Method)
>>> at java.lang.Class.forName(Class.java:195)
>>> at org.apache.soap.rpc.SOAPContext.loadClass(SOAPContext.java:564)
>>> at
>>> org.apache.soap.server.http.ServerHTTPUtils.getTargetObject(ServerHTTPUtils.java:275)
>>>
>>> at
>>> org.apache.soap.providers.MsgJavaProvider.locate(MsgJavaProvider.java:113)
>>>
>>> at
>>> org.apache.soap.server.http.MessageRouterServlet.doPost(MessageRouterServlet.java:307)
>>>
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>>> at
>>> com.iplanet.server.http.servlet.NSServletRunner.invokeServletService(NSServletRunner.java:897)
>>>
>>> at
>>> com.iplanet.server.http.servlet.WebApplication.service(WebApplication.java:1059)
>>>
>>> at
>>> com.iplanet.server.http.servlet.NSServletRunner.ServiceWebApp(NSServletRunner.java:959)
>>>
>>> </stackTrace>
>>> </detail>
>>>
>>>
>>> It could not find org/apache/soap/util/xml/XMLJavaMappingRegistry
>>> ... even though that class is in the directory ( exploded from
>>> soap.war by Iplanet ):
>>> /usr/iplanet/servers/<server-name>/web-apps/soap/WEB-INF/classes/org/apache/soap/util/xml/.
>>>
>>> ... which is weird given that it was able to load the MessageRouter
>>> and RPCRouter servlets, but not the XMLJavaMappingRegistry??
>>>
>>> I have tried putting soap.jar into the
>>> /usr/iplanet/servers/<server-name>/web-apps/soap/WEB-INF/lib
>>> directory, restarted IWS.
>>> Same error.
>>>
>>> I have also tried putting soap.jar in the server's CLASSPATH as
>>> specified in
>>> http://docs.sun.com/source/817-0540-10/app_c1.html#14137
>>>
>>> Same error.
>>>
>>>
>>> Any ideas?
>>>
>>>
>>>
>>> --
>>> To unsubscribe, e-mail: <mailto:soap-user-unsubscribe@xml.apache.org>
>>> For additional commands, e-mail: <mailto:soap-user-help@xml.apache.org>
>>>
>>>
>>>
>>
>>
>>
>> Scott Nichol
>>
>>
>> --
>> To unsubscribe, e-mail: <mailto:soap-user-unsubscribe@xml.apache.org>
>> For additional commands, e-mail: <mailto:soap-user-help@xml.apache.org>
>>
>>
>>
>>
>
>
--
Jesus M. Salvo Jr.
Mobile Internet Group Pty Ltd
(formerly Softgame International Pty Ltd)
M: +61 409 126699
T: +61 2 94604777
F: +61 2 94603677
PGP Public key: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xC0BA5348
--
To unsubscribe, e-mail: <mailto:soap-user-unsubscribe@xml.apache.org>
For additional commands, e-mail: <mailto:soap-user-help@xml.apache.org>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic