5

connectorZ JCA 1.6 Executor 実装を実行しようとしています。そのために、github から Zip
をダウンロードし、クライアントを実行しようとしました (ワーク マネージャー: java.util.concurrent.Executor の JCA 実装)。

(いくつかの依存関係の問題を解決した後) Eclipse でアプリケーションを実行することができます。特定のリンクをクリックする
と、「5 つのブロッキング タスクを実行する」というリンクを使用して jsp ページが正常に読み込まれ、
例外が発生します。

Caused by: java.lang.NullPointerException
    at org.connectorz.threading.ThreadsResource.overload(ThreadsResource.java:72) [classes:]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_40]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_40]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_40]
    at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_40]

ここでの問題は executorFactory が null です。jndi_name " jca/workmanager "についてはわかりません。

@Resource(name="jca/workmanager")
WorkExecutorFactory executorFactory; //NPE at executorFactory(not injecting).


jndi またはリソース ファイルに関連する構成が欠落しているかどうか。
この問題を解決するにはどうすればよいですか?

4

1 に答える 1

0

別のデプロイ済みモジュールから JCA モジュールにアクセスするには、次の 3 つの手順が必要です。

  1. JCA モジュールをアプリケーション サーバーにデプロイする
  2. 以前にデプロイされた JCA モジュールの接続プールを作成する
  3. 使用する接続プールを指定する JCA モジュールの JNDI エントリを作成します。

あなたの場合、ステップ 2 と 3 を実行していないと思います。

Connection-Pool の JNDI-Name は自由に選択できますが、3 番目のステップの JNDI-Name は @Resource-Annotation (= jca/workmanager) で指定されたものと同じである必要があります。

上記の手順を実行する方法は、ApplicationServer によって異なります。

現在、RAR モジュールの ConnectionFactory クラスに @Size-Annotation を含むバグがあることに注意してください。これを修正するには、コメントアウトしてください。

于 2014-02-16T16:45:04.170 に答える