如何从爆炸的webapp的根目录中读取资源?

时间:2011-03-15 05:51:10

标签: web-applications resources jboss classpath exploded

我有一个使用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 ...

1 个答案:

答案 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资源。