8

アプリを GlassFish 3.0.1 から GlassFish 3.1.1 に移行しています。デプロイが失敗し、次のエラー メッセージが表示されます。

SEVERE: Exception while loading the app
SEVERE: Exception while shutting down application container
SEVERE: Exception while shutting down application container : java.lang.NullPointerException
SEVERE: java.lang.RuntimeException: Error occurred during deployment: Exception while shutting down application container : java.lang.NullPointerException. Please see server.log for more details. 

スタック トレースはありません。ルート ログ レベルを FINEST に設定すると、Weld メッセージの後に最初の SEVERE メッセージが表示されます。

//...
FINE: WELD-000105 Enabled interceptor types for Manager
Enabled alternatives: [] []
Registered contexts: [interface javax.enterprise.context.SessionScoped, interface javax.enterprise.context.RequestScoped, interface javax.inject.Singleton, interface javax.enterprise.context.Dependent, interface javax.enterprise.context.ApplicationScoped, interface javax.enterprise.context.ConversationScoped]
Registered beans: 0
Specialized beans: 0
: []

そして、これらのようないくつかのメッセージの前に (いくつかの異なるクラスに対して):

FINE: PWC4451: File cannot be read /opt/sun/glassfish-3.1.1/glassfish/domains/domain1/applications/QmsWeb/WEB-INF/classes/org/jboss/seam/transaction/SeamTransaction.class
FINE: PWC4451: File cannot be read /opt/sun/glassfish-3.1.1/glassfish/domains/domain1/applications/QmsWeb/WEB-INF/classes/org/jboss/seam/transaction/SeamTransaction.class
FINE: PWC4451: File cannot be read /opt/sun/glassfish-3.1.1/glassfish/domains/domain1/applications/QmsWeb/WEB-INF/classes/net/sf/ehcache/config/TerracottaConfiguration$ValueMode.class
//...

このエラーの原因は何ですか? これらの PWC4451 メッセージは、一部のライブラリがロードされていないことを示している可能性がありますか?

4

6 に答える 6

6

これは、Serializable を実装していない @ViewScoped Bean が原因でした。どうやら、私たちが使用していた以前のバージョンの Weld では、パッシベーション スコープの Bean がシリアライズ可能でないことは問題ではありませんでしたが、これが原因でサイレントに失敗しました。まあ、これで誰かの時間を節約できることを願っています。

于 2011-08-31T22:56:23.430 に答える
2

この問題に関して私が遭遇した理由と解決策:
- ターゲットが更新されていない (maven clean を実行してください。ターゲット フォルダーがロックされている可能性があります。手動で削除して、ear を再構築してください (この問題が数回ありました))
- JDBC の問題プール: それらをフラッシュします
- EJB のコンストラクターの問題 (Bean を作成するのはコンテナーであることに注意してください): コンテナーはそれらを開始できる必要があるため、引数のないデフォルトのコンストラクターが存在する必要があります

それが機能しない場合: チーム -> 比較 -> 最新の動作中のバージョンで、Web サービスのすべての EJB Bean または DTO がエラーの考えられる原因であると考えてください。変更をコメントし、デプロイを再試行して問題を特定します。

とにかく厄介なエラーです:(頑張ってください!

于 2013-05-22T10:04:44.753 に答える
2

でシリアル化できないインターセプターを追加するときに、同じ問題が発生しましたGlassfish 3.1.2.2NullPointerExceptionこれ以上の説明なしで取得しました。

インターセプターの実装を作成すると、正常に動作しますSerializable

于 2012-09-11T08:56:10.670 に答える
2

私の場合、問題は、私の beans.xml が空の「beans」要素で構成されていたことでした。これは以前は機能していましたが、明らかに機能しなくなりました。完全に空の0バイトのbeans.xmlに置き換えたところ、うまくいきました。

于 2011-12-16T13:02:35.000 に答える
0

私の場合、Interceptors の精神では、私はそこで遊んでいたので、簡単に見つけることができました。

注釈付きで使用しているにもかかわらず、インターセプターに無実の @Interceptor を追加しています。

私のグラスフィッシュのバージョンは 3.1.2.2 です。

このページには、オプションのInteceptor Javadocであると書かれています。

于 2014-04-04T15:04:25.693 に答える