[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