ホームページ >Java >&#&チュートリアル >IBM WSDL2Java で生成されたコードをコンパイルするときに Java 5 の QName クラスにアクセスできないのはなぜですか?

IBM WSDL2Java で生成されたコードをコンパイルするときに Java 5 の QName クラスにアクセスできないのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-20 01:35:13219ブラウズ

Why Can't I Access the QName Class in Java 5 When Compiling IBM WSDL2Java Generated Code?

ライブラリのアクセス制限について: ケーススタディ

Java コードを使用する場合、制限により特定のクラスへのアクセス制限が発生する場合があります。特定のライブラリ (JAR ファイル) によって強制されます。このようなシナリオの 1 つは、IBM の WSDL2Java ツールで作成された Java 1.4 コードを Java 5 を使用してコンパイルしようとしたときに発生します。

エラーが発生しました:

コンパイルを試行中に、 Eclipse の次のエラー:

Access restriction: The type QName is not accessible due to restriction on required library C:\Program Files\Java\jdk1.5.0_16\jre\lib\rt.jar

このエラーは、QName クラスが必要な rt.jar ライブラリの制約により、javax.xml.namespace パッケージのファイルにアクセスできません。

考えられる解決策:

1.スタブの再作成:

考えられる解決策の 1 つは、WSDL2Java を使用してスタブを再作成することです。これにより、スタブが Java 5 環境専用に生成されるようになり、互換性の問題が排除されます。

2.ビルド パス設定の変更:

別の解決策には、プロジェクト プロパティでビルド パス設定を更新することが含まれます:

  • JRE システム ライブラリを削除します。
  • 追加「ライブラリの追加」を選択し、JRE システムを選択して、JRE システム ライブラリに戻ります。 Library.

ソリューションの背後にある理由:

  • スタブの再作成: スタブを手動で再生成することで、スタブが Java 5 環境と互換性があることを確認します。これにより、互換性修正の必要がなくなります。
  • ビルド パス設定の変更: JRE システム ライブラリを削除して再度追加すると、ビルド パス内のライブラリの順序が変更されます。これにより、異なる JAR ファイルに同じ名前の複数のクラスが存在する場合の競合を解決し、正しいクラスを優先することができます。永続的な解決策を確実にするには、重複したクラスを含む JAR ファイルを除外することをお勧めします。

以上がIBM WSDL2Java で生成されたコードをコンパイルするときに Java 5 の QName クラスにアクセスできないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。