1

Seam 2.3アプリケーションを移行して、JBossAS7内のキャッシュにInfinispanを使用しようとしています。Seam 2.3ディストリビューション内のブログの例を見て、jGroupsConfig.xmlファイルとinfinispan.xmlファイルをWebアプリケーションのソースパスにコピーし、components.xmlを変更して適切なキャッシュプロバイダーを指定しました。しかし、私がこのようなものを実行すると...

public class MyClass {

...

@In
CacheProvider cacheProvider;

...

public void myMethod() {
this.cacheProvider.get("abcd");
}

...

}

...Infinispanキャッシュを開始できないというエラーが表示されます。IOExceptionを報告するパーサーのように見えるもの以外に、それ以上のエラーはありません。私が見るのは:

com.ctc.wstx.exc.WstxIOException:  Stream closed

ロギングを増やしましたが、それでも有用なものは何も表示されません。アプリ内でInfinispanキャッシュを機能させるために、さらに何かする必要がありますか?JBoss AS7コンソール内で手動で何かを作成する必要がありますか?キャッシュ構成ファイルは、Webプロジェクトのソースディレクトリにあります。それは正しい場所ですか?

4

2 に答える 2

0

この問題を抱えている他の人のために、私はついに必要なすべての部品を用意しました。これが私がしなければならなかったことです...

  1. JBossデプロイメント構造ファイルでInfinispanモジュールを宣言しないでください。代わりに、Seam2.3ディストリビューションの一部であるJARを使用してください

  2. WstxIOException自体は、infinispan.xml構成ファイルを見つけることができなかったことが原因です。これをJavaソースディレクトリに配置して、META-INFまたはWEB-INFディレクトリではなく、クラスパスの直接の一部になるようにします(components.xmlファイルでそのように宣言しない限り)。

  3. EARにSeam2.3ディストリビューションのすべてのXML解析JAR(staxなど)があることを確認してください

于 2013-05-21T13:57:53.700 に答える
0

私は同じ問題を抱えていました:com.ctc.wstx.exc.WstxIOException: Stream closed

しかし、プロジェクトではMaven 3.2、JBoss WildFly 8.2(Infinispan Cache v7.1.1.Finalが埋め込まれている)、Axis2を使用しています。私はAxis2を使用していて、エラーがAxis2で使用されているWoodStox(具体的にはwstx-asl.3.2.8.jar)から発生していることがわかったので、最初はAxis2、WildFlyの依存関係の問題が原因だと思いました。とMaven。

しかし、多くの調査の結果、完全なスタックトレースから、根本的な原因はjava.io.IOExceptionであり、実際には「com.ctc.wstx.exc.WstxIOException:Streamclosed」エラーメッセージではないことがわかりました(WARがデプロイされていました)正常に実行されましたが、キャッシュが設定されていませんでした)。wstx-asl.jarのソースコードを調べたところ、BufferedInputReaderをnullとして受け取っていることがわかりました。そのヒントとShadowmanからの上記の回答により、キャッシュを初期化するときにInfinispanCacheManagerが構成ファイルを正しく取得しているかどうかを確認するように促されました。

クラスパス内でInfinispan構成ファイルを取得できないという問題があったため、/ WEB-INF / infinispan.xml内に配置する必要があり、機能しました。

したがって、私たちが受け取るエラーはWoodStoxに関するものですが、Infinispanキャッシュ構成ファイル(またはその他のファイル)がプログラムによって適切に検出されていることを確認してください(リソースまたは物理パスとして)。

これが同様の問題を抱えている他の人に役立つことを願っています。

于 2015-06-19T15:14:07.470 に答える