Thanks Scott.
That helped a lot. I've modified my service so that I can access
the SOAPContext object.
I still can't do quite exactly what I want however and I'm wondering 
if it's just because I'm trying to do the wrong thing.

A call to

        request.getServletPath();

returns something like /servlet/rpcrouter

and getRealPath() turns this into the equivalent of 
'C:\Program Files\Apache Group\Tomcat 4.1\webapps\soap\servlet\rpcrouter'

but my classes are in
'C:\Program Files\Apache Group\Tomcat 4.1\webapps\soap\WEB-INF'

and actually there is no folder 'servlet' in 
'C:\Program Files\Apache Group\Tomcat 4.1\webapps\soap\'.

What I was trying to do is have a collection of classes implementing 
my service and a properties file for various settings in the same 
directory. Is there anything 'wrong' with this approach or should
I have a folder like 'mySoapService' under '...webapps\soap\servlet\rpcrouter'
to hold stuff like settings files. This is what the return value of 
'request.getServletPath()' would imply. Classes go under 
'webapps\soap\WEB-INF\mySoapService' any other stuff under 
'webapps\soap\servlet\rpcrouter\mySoapService'.

Another approach I've considered is to get the path for the properties
file from an environment variable.

Is there a right way to access property files from SOAP services?
None of the SOAP samples do this and I couldn't find anything on
the web. (I'm still looking though).

Any input is appreciated.

Thanks
Con


        String tmpDir = request.getServletPath();



-----Original Message-----
From: Scott Nichol [mailto:[EMAIL PROTECTED]
Sent: 13 June 2003 19:11
To: [EMAIL PROTECTED]
Subject: Re: Accessing text files in SOAP service folder


Doing a getRealPath is fine, but you have to code your services 
specially to get the servlet context.  Specifically, you must add a 
parameter to the method(s) of type SOAPContext.  Apache SOAP will 
then pass the current request context, from which you can get the 
HttpRequest, etc.

As long as you have the SOAPContext, you might want to consider 
having your parameters in either the web.xml for the Apache SOAP 
webapp, or the deployment descriptor for the service.  These are 
fairly standard places for initialization information.

If you are using a nightly build of Apache SOAP, you can also have 
your service implement the ConfigurableService interface.  This has a 
method that is called immediately after instantiation of the service. 
The method receives the webapp and deployment descriptor values as 
parameters.

On 13 Jun 2003 at 16:41, Ruane, Conleth wrote:

> Hi All.
> 
> I'm writing my first SOAP service using Apache SOAP.
> I've run into a problem I can't find a solution for after a lot of searching.
> 
> I want my service to pull some settings from a text file which is in the same 
> folder as the service classes but if I use just the file name I get a 
> fileNotFoundException.
> I've established that the file is being looked for in the tomcat bin folder instead 
> of the
> folder where the classes are. I want to avoid using a hardcoded absolute path.
> 
> A similar problem in my jsp pages I solved using
>              workingDir =  
> pageContext.getServletContext().getRealPath(request.getServletPath());
> 
> Can I do something similar in a soap service class or is there any good way to do 
> what I want.
> 
> Thanks
> 
> Con
> 
> 


Scott Nichol

Do not reply directly to this e-mail address,
as it is filtered to only receive e-mail from
specific mailing lists.


Reply via email to