You do not want to use getServletPath().  As you have seen, it gives 
you a virtual path, not a physical filesystem path.

Use getRealPath() alone.  If you really want to be slick, use 
ServletContext#getResource or ServletContext#getResourceAsStream to 
read the configuration as a "resource" within the webapp.

On 16 Jun 2003 at 15:15, Ruane, Conleth wrote:

> 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.
> 
> 
> 


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