Folks,

This is not strictly a Tomcat problem, but since the application is running under Tomcat I thought I would ask.

Environment
-----------
Tomcat:  6.0.20
JRE:     1.6.0_16
OS:      some UNIX variant

I'm a little light on the environment, since it's not mine. Yes, this is old. No, I don't have any leverage to get them to update.

Background
----------

An application makes use of a PDF library which generates PDFs from JSP pages. One of these pages includes a dynamically generated graph.

This library cannot use streaming data to include the graph. The only two options are:

1. Write the graph within the web application and use relative paths
2. Write the graph somewhere else and:
   a. use a fully qualified URL point to a servlet
   b. the servlet retrieves the graph by name

Ideally, we write the JPG file to java.io.tmpdir, then reference a servlet in the JSP to fetch the graph and insert it into the page.

Considerations
--------------

Unfortunately, in certain environments we cannot use solution 2. One of these environments involves a NAT and hairpinning. In those cases, we use solution 1.

We use getRealPath in a listener, tag on a directory to write images, set the path in a singleton, and we're done. We can then use a relative directory in the JSP to get the image and generate the PDF.

If for any reason getRealPath returns a null, we fall back to using java.io.tmpdir.


Problem
-------

I ran into a situation where getRealPath with the above environment returns a null, even when the WAR file is exploded.

This means that we fall back to java.io.tmpdir, and run into the hairpinning problem.

Question
--------

What other reasons could there be for getRealPath to return a null rather than the path where the application is run?

Some other Info
---------------

They are not running under a security manager. ps shows no security manager arguments, and at any rate the application would throw a bunch of other security violations and fail to start (a few getReourceAsStream issues in listeners).

I noticed that the server appears to be running from an NFS mount. However, the exploded WAR file directory is marked as 755, and the ownership is correct.

About the only thing that comes to mind is NSF3 / NSF4 ACLs. I won't know more about the server environment until Monday.

If anyone has ideas, I'd be happy to hear about them.

. . . just my (confused) two cents
/mde/

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to