1

私はWebアプリケーションで10人以上のJava開発者のチームと協力しています。これは大きなプロジェクト(2年前)であり、昨夜から問題が発生しています。一部のBean(2 Bean)は、使用時にNullPointerExceptionを引き起こします(IoCが機能しなくなったかのように)。

問題は、2日前はすべてが正常に機能していたことです。この2日間、すべてのコミットを読みましたが、SpringConfugrationファイルに変更はありませんでした。

Springを介してBeanを動的に注入し、新しいオペランドを介してインスタンス化すると、NPEが得られることがありますが、プロジェクトにはその兆候がありません。

すべての開発者がローカルマシンでこの問題を抱えているわけではありませんが、CIサーバーでは、しばらくは正常に動作し、その後、(サーバーではなく)マシンを再起動するまで停止します。誰かがこの問題に対処する方法を知っていますか?サーバーの起動時にエラーはまったく表示されません。

アップデート:

  • サーバーコンテキストの初期化では、エラー(警告も)がまったく表示されず、成功メッセージで終了します。

  • Beanセッターへのすべての呼び出しを確認しました。使用されていません。

  • Beanは、@Autowiredではなく構成ファイルを介して取得されます。

  • 私は実際にプロジェクト全体で新しいオペランドを検索し、それぞれをチェックするのに約2時間かかりましたが、新しいオペランドでインスタンス化されたBeanはありませんでした。

4

2 に答える 2

2

私の推測では、誰かがBeanを作成するために「新規」と呼んでいます。つまり、Spring Beanファクトリの管理下にはありませんが、どういうわけかDIに依存しています。アノテーションを使用してリソースを接続している場合は、さらに可能性が高くなります。

あなたはそれを自分で言いました:それは何年もの間うまく働いています。春は突然失敗しませんでした。10人以上のJava開発者の1人が、Springを初めて理解しているか、理解していると思っているほど理解していない可能性が高くなります。

于 2012-11-27T10:38:04.567 に答える
0

この問題は、JavaMelodyとSpringAOPの間の競合が原因でした。それを解決するには、問題の根本がわかるまで、しばらくの間JavaMelodyを無効にする必要がありました。

JavaMelody FAQから(詳細については)

アプリケーションでオールインワンのmonitoring-spring.xmlとAOPまたは@Autowiredの間に競合がある場合は、monitoring-spring.xmlの代わりにmonitoring-spring-datasource.xmlファイルを使用できます。このファイルには、データソースポストプロセッサとSpringDataSourceFactoryBeanの例のみが含まれています。

于 2012-11-28T14:04:39.070 に答える