9

という名前のファイル名を含む CXF/Hibernate/JBoss ベースのプロジェクトを継承しましたdatabase.xsd。プロジェクトをくまなく調べて、システム内のどのサブシステム/コンポーネントが使用されているかを調べましたが、maven-war-plugin が WAR ファイル ( webapp-cache.xmldatabase.xsd )を作成するために使用するファイルで 1 つの参照しか得られませんでした。

database.xsdこれは、フレームワークやプラグインで期待される標準的なファイル名であることを示唆しています。しかし、それはどれですか?冬眠?CXF? 他の?

database.xsdそれに依存するパッケージでの役割を実際に説明しているドキュメントはありますか?

更新:一時的に削除database.xsdして再構築しようとすると、多数のコンパイル エラーが発生し、 DTO ファイルXML2SQL.javaによって参照されるパッケージを使用するプリンシパル ファイルが生成されました。*.hbm.xmlこれは、犯人が... Hibernateであることを示しています。

4

2 に答える 2

4

これはHibernateです。一時的に database.xsd を削除して再構築しようとすると、多数のコンパイル エラーが発生し、 DTO ファイルのみXML2SQL.javaによって参照されるパッケージを使用するプリンシパル ファイルが発生したためです。(上記の更新を参照)*.hbm.xml

于 2012-12-31T17:16:15.600 に答える
1

私はこれに「昔ながらの方法」、良いロギング + 二分探索アプローチでアプローチします。

最初にテスト環境で:

1) コードが log4j を使用するように設定されており、最も広範なログ レベルがオンになっていることを確認します。

2) database.xsd を削除して、障害の「中間点」を大まかに決定します。たとえば、システムが正しくセットアップされていると、1000 行のログが生成されるとします。database.xsd を削除すると、読み込みに失敗し、わずか 500 行のログで停止します。ログを見て、どのクラス/メソッドが呼び出されているかを判断します。( database.xsd を削除する代わりにこれを処理する別の方法は、構文エラーのあるコピーをテスト環境に導入することです。)

3) ステップ 2 の調査で、より多くの情報を取得するためにログと try/catch を追加します。これでターゲットを絞り込めない場合。「250ロギングライン」ポイントに焦点を当てて繰り返します。ターゲット クラスが見つかるまで、毎回問題領域を半分に切り詰めていきます。

私が見た多くの Java プログラムは、"ハッピー パス" のコードだけであり、トップ レベルの例外処理に依存してエラーをキャッチしてログに記録します。

于 2012-12-29T13:31:01.053 に答える