Hi Scott,
Thanks for your help!
Scott Nichol wrote:
> 1) Clearly, for any service method that is executed, the byte code
> must be loadable, which means it must be somewhere that a Tomcat
> class loader can access it. If the code cannot be found, Apache SOAP
> would return a SOAP Fault to the client.
O.K, that seems obvious; agreed.
> Almost always, the classes implementing services should be in the
> Apache SOAP webapp. Depending on what dependencies the service
> classes have, they may also work from $CATALINA_HOME/lib or
> $CATALINA_HOME/classes.
so you mean the class implementing a SOAP service has in
principle to be in the directory $CATALINA_HOME/webapps/soap
(or $CATALINA_HOME/{lib|classes}).
Do I understand this right?
I was able to get it working differently for a simple testing
purpose: the byte code of the class implementing a SOAP service
was in the ~/soap-example directory, and I added by hand that
directory to the tomcat classpath in the script
$CATALINA_HOME/bin/catalina.sh
I guess that's not really the way you're supposed to be doing
it, so my question:
- I have a full web applications, let's call it <mywebapp>
with its WEB-INF/ directory and classes/ and lib/ subdirectories,
a deployment descriptor web.xml. It contains as well servlet
as other Java classes.
- I want to expose some methods of some of these classes (in principle
not servlet classes) as SOAP services, and I have written the
deployment descriptor for these.
- What is the correct way to deploy <mywebapp>? Put it in the
$CATALINA_HOME/webapp/soap/ subdirectory? And so merge my
web.xml file with the soap/WEB-INF/web.xml file? I would
honestly prefer to have <mywebapp> in a subdirectory on
its own. In that case I wouldn't have to care about the stuff
not regarding <mywebapp> in web.xml for example.
- I actually tried to have it in a directory on its own and added
a special context for that $CATALINA_HOME/conf/server.xml:
<Context path="/quotation"
docBase="/home/vuko/soap/soapuser-1.0/web"
crossContext="true"
debug="0"
reloadable="true"
trusted="false">
</Context>
(I am actually trying to run the example found at:
http://www.soapuser.com/server4.html but without
IDE: I am compiling and moving files "by hand" and
that's where I am failing)
but that seems not to work: when I try to make a client
call to the service, tomcat does find the service but
cannot resolve a class located in the same package (and
directory) as the service:
Generated fault:
Fault Code = SOAP-ENV:Client
Fault String = Deployment error in SOAP service
'urn:QuotationService': class name
'com.soapuser.soap.server.quotation.Quotation' could not be resolved:
com.soapuser.soap.server.quotation.Quotation
What am I doing wrong, how am I supposed to do it? Let me
know if you need further details to understand what I am
trying to do.
Vuko
--
===========================================================|
Vuko Brigljevic, EP Research Fellow |
CERN - European Laboratory for Particle Physics |
--------------------------------------------------------- |
Mail Address: CERN, Div. EP, 1211 Geneve 23 (Switzerland) |
Office : B40-2B08 |
Phone : +41-22-767 1662 |
e-mail : [EMAIL PROTECTED] |
www : http://www.slac.stanford.edu/~vuko |
===========================================================|
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>