我有一个使用JBoss Tools和Eclipse的本地主机JBoss 6设置,正在进行爆炸式 webapp的热部署。我曾经使用带有显式类路径的主类和通过JAR / WAR文件通过shell启动我的webapp。我的资源加载器过去工作得很好,但是现在因为webapp在JBoss的一个带有“未知”类路径的展开式目录结构中,所以找不到像“/db/jpql/whatever.jpql”这样的文本文件资源(返回null) ,导致NPE)。
问题是:
如何从爆炸的webapp(在JBoss中)的根目录(或WEB-INF目录之外)加载资源?我检查了类路径,它只是C:\ dev \ jboss \ bin \ run.jar ...
答案 0 :(得分:0)
我已经“忘记”在我的资源字符串前面添加斜杠。无法可靠地工作。
我用过
public static String readResource(String sResource)
{
String sContent = "";
InputStream is = null;
BufferedReader br = null;
try
{
is = TextFileLoader.class.getResourceAsStream(sResource);
// resource not found, check web environment
if ( is == null )
{
is = FacesContext.getCurrentInstance().getExternalContext().getResourceAsStream(sResource);
}
is.available();
br = new BufferedReader(new InputStreamReader(is));
...
}
...
}
如果当前类的类加载器返回null,则获取webapp资源。