問題タブ [linkageerror]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - java.lang.LinkageError: ローダーの制約違反: ローダーは以前に名前が "javax/xml/namespace/QName" の別の型のロードを開始しました
私はEclipse プラグインを開発しており、通常の jarライブラリを同等のOSGi bundleに置き換えようとしています。Apache Felix maven-bundle-plugin を使用して jar ファイルをビルドし、それを OSGi バンドルに変換します。pom.xml<Export-Package>
で、プラグインに必要なパッケージを定義しuses
、パッケージを含むライブラリに含まれるすべてのパッケージ (依存関係)として定義します。プラグインのクラスパスでライブラリを使用していたとき、プラグインを正常に実行できました。ライブラリから作成した OSGi バンドルからパッケージをインポートすると、次のエラーが発生します。javax.xml.namespace
<Embed-Dependency>
javax.xml.namespace
クラスの 2 つの異なるバージョンがインスタンス化されているようですQName
(1 つはプラグインから、もう 1 つはライブラリから?) が、ライブラリとプラグインの両方でこのクラスが必要です。javax.xml.namespace パッケージをバンドルからプラグインにインポートしようとしましたが、これは役に立ちませんでした。また、クラスをインポートしないプラグインの別のクラスにライブラリに関連するコードを移動しようとしましたQName
が、これは何かを変更しませんでした。難しい問題のようです。MANIFEST.MFまたはバンドルの組み込みパッケージで何かを変更する必要がありますか、それともプラグインのインポートされたパッケージで何かを変更する必要がありますか? どんな助けでも大歓迎です。
web-services - スタブ メソッドの呼び出し中に「メソッドが 'java.lang.LinkageError' 例外をスローしました」
自動生成されたスタブを使用して Web サービスのメソッドを呼び出そうとしています。次の行で割り当て、
SOAP エンベロープとして。
これの理由は何ですか?
maven - jsf 1.2 を jsf 2.2.12 に移行すると問題が発生する
プロジェクトをjsf 1.2からjsf 2.2.12に移行しています。ビルドが成功した後、jboss 7 サーバーにデプロイしたところ、次のようなエラー メッセージが表示されました。
これについて何かアイデアはありますか?
これが私のシステムの詳細です: サーバー: jboss7 現在のライブラリ: jsf 1.2、richfaces 3.3.3 移行ライブラリ: jsf 2.2.17 ビルド: maven
よろしくお願いします、
java - 予想される例外と Powermock を使用して TestNG を実行するとリンケージ エラーが発生する
私はMavenプロジェクトに取り組んでおり、次の構造でTestNG単体テストを実行しようとしています:
しかし、テストを実行していると、次の例外が見つかりました。
私の知る限り、powermock はテスト環境用に MockClassLoader を使用してオブジェクトをロードし、Sun は AppClassLoader を使用して同じオブジェクトをロードします。クラスローダーが異なるため、実行時にオブジェクトも (同じ名前を持っている以上に) 異なり、これは LinkageError を意味します。
とにかく、それを回避するためにいくつかの方法を試しました。たとえば、expectedExceptions タグを削除して、try および catch 句を追加しましたが、成功しませんでした。
その例外に対して一意のクラスローダーを設定するにはどうすればよいですか? それはそれを解決するための正しいアプローチですか?それとも、何か他のもので試してみるべきですか?Maven の設定に何か問題があるのでしょうか? アイデアやコメントは大歓迎です:)
java - 同じクラスの異なるバージョンを使用したクラスロード: java.lang.LinkageError: name の重複したクラス定義を試みました
異なるクラス名を持つ異なるクラス実装を動的にロードする作業コードがあります。クラス ファイルはメモリ内データベース( Apache Derby Db ) にロードされ、classloader はBLOB列から.classファイルを取得します。
私がやりたいことは、バージョン列とフラグを含むバイナリ BLOB として.classIS_ENABLED
ファイルを挿入することです。その後、クラスローダーは実行時にさまざまなバージョンのクラスをロードします。コンパイルされたクラス バージョンと同量の db エントリがあり、IS_ENABLED
フラグがTRUEに設定されたクラスは 1 つだけです。
カスタムクラスローダーで同じクラス名をロードしようとしたため、次の例外が発生しました。
同じインターフェース ( Greeter.java )に対して2 つの異なる.classファイル ( Greeter.class.v1、Greeter.class.v2 ) (コードの先頭に挿入) があります。
テスト コードの冒頭で、lib/classes/ フォルダーからクラス ファイルが取得され、インメモリ db に blob バイナリ データとして挿入されます。その後、.class ファイルがデータベースによって順次取得されて読み込まれます。同名クラスのロード中に例外が発生する。
どうすればこの問題を解決できますか? クラスをアンロードする方法、またはとにかく同じ名前のクラスをリロードする方法はありますか?
プロジェクトツリー
DerbyServerClassLoader.java - クラスローダー
Greet.java - Greeter インターフェイス
DbSingleton.java - DbSingleton に接続するユーティリティ クラス
ClientClassLoaderDBVersionDemo.java - テスト コード
出力
c++ - Visual Studio で DLL を生成する
私はdllファイルを生成しようとしており、その.libファイルを別のプログラムで使用していますが、残念ながら.libファイルは生成されません! 私は何をすべきか?
jakarta-ee - java.lang.LinkageError: ローダーの制約違反。インターフェイスメソッドを解決するとき(サービスクラス内)
私のプロジェクト構造は、Rest (Rest API とその実装クラスが配置される)、Service API (サービス インターフェイスが定義される)、および Service Impl (サービス API の実装が配置される) という 3 つのバンドルがあるようなものです。値を(+いくつかのプロパティ)オブジェクトにPersonalInfoServiceImpl
設定して返すだけの私のコード。正常に動作していました。しかし、さらにいくつかのインターセプターと統合した後、突然、このコードで次のエラーが発生し始めました。PersonalInfoRequestBean
PersonalInfoResponseBean
PersonalInfoResponseBean
誰かがこの問題で私を助けることができますか?. サービスのデプロイには Apache karaf を使用しています。したがって、それが karaf/delpoyment/maven の依存関係に関連している場合、この問題をデバッグする方法は何ですか。