0

分解されたWebアプリケーションのホットデプロイを実行するJBossToolsとEclipseを使用したローカルホストJBoss6セットアップがあります。以前は、明示的なクラスパスを持つメインクラスを使用するシェルとJAR/WARファイルを介してWebアプリケーションを起動していました。以前はリソースローダーは完全に機能していましたが、Webアプリケーションが「不明な」クラスパスを持つ展開されたディレクトリ構造のJBoss上にあるため、「/ db / jpql / whatever.jpql」などのテキストファイルリソースが見つかりません(nullが返されます) 、NPEにつながります)。

質問は:

展開されたWebアプリケーション(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 に答える