0

我有一个带有 JBoss 工具和 Eclipse 的 localhost JBoss 6 设置,用于热部署爆炸的web 应用程序。我曾经使用带有显式类路径的主类和 JAR/WAR 文件通过 shell 启动我的 webapp。我的资源加载器过去可以完美运行,但现在由于 webapp 位于 JBoss 上,位于具有“未知”类路径的爆炸目录结构中,因此找不到像“/db/jpql/whatever.jpql”这样的文本文件资源(返回 null ,导致 NPE)。

问题是:

如何从扩展的 webapp(在 JBoss 中)的根目录(或 WEB-INF 目录之外)加载资源?我检查了只是 C:\dev\jboss\bin\run.jar 的类路径...

4

1 回答 1

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

于 2011-03-15T19:23:22.053 回答