-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Some Web containers don't support context.getRealPath #304
Comments
Reported by sandoz@java.net |
Was assigned to jersey-issues |
gdavison@java.net said: Consider the following resource: @path("/context") @get { StringBuilder sb = new StringBuilder(); // sb.append("classes\n"); String startPath = "/WEB-INF/classes"; iterate(sc, sb, startPath); sb.append("lib\n"); startPath = "/WEB-INF/lib"; iterate(sc, sb, startPath); // return sb.toString(); } private void iterate(ServletContext sc, StringBuilder sb, // if (path.endsWith("/")) { iterate(sc, sb, path); } else { { sb.append("First few bytes as hex are are "); sb.append(Integer.toString(inputStream.read(), 16)); sb.append(Integer.toString(inputStream.read(), 16)); sb.append(Integer.toString(inputStream.read(), 16)); sb.append(Integer.toString(inputStream.read(), 16)); } else { sb.append("First few charaters are "); sb.append(Character.toString((char)inputStream.read())); sb.append(Character.toString((char)inputStream.read())); sb.append(Character.toString((char)inputStream.read())); sb.append(Character.toString((char)inputStream.read())); } sb.append(" \n"); { inputStream.close(); } } catch (IOException ioe) { ioe.printStackTrace(); } } public static class ExampleInnerClass { } This will list all the classes in nested directories and any jar under the lib When run on weblogic the output for this application looks like: classes Note that cafebabe and PK are the magic properties for .class files and |
gdavison@java.net said: You can configure weblogic to return a non-null value for getRealPath with the <weblogic-web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-web-app See specificaly CR CR299135 in |
sandoz@java.net said: |
gdavison@java.net said: |
Marked as fixed on Tuesday, December 1st 2009, 9:21:10 pm |
This issue was imported from java.net JIRA JERSEY-32 |
Some Web containers, like Weblogic, do not support ServletContext.getRealPath
for deployed web applications, null values are returned. So the default
configuration for scanning class files in /WEB-INF/classes and /WEB-INF/lib does
not work.
However, Servlet.getResource(), returns file-based URLs, at least for Weblogic,
from which the resolved paths for /WEB-INF/classes and /WEB-INF/lib can be obtained.
See the email here for more details:
https://jersey.dev.java.net/servlets/ReadMsg?list=users&msgNo=508
If the getRealPath("/WEB-INF/classes") returns null then try the
getResource("/WEB-INF/classes) and if it returns a file-based URL then extract
the path. Otherwise thrown an exception saying the the default servlet
configuration cannot be supported.
Environment
Operating System: All
Platform: Sun
The text was updated successfully, but these errors were encountered: