問題タブ [classloader]

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.

0 投票する
2 に答える
2590 参照

java - Glassfish に読み込まれたクラスの総数

EJB を使用したエンタープライズ アプリがあります。アプリの合計サイズは 34 メガです。アプリをデプロイするとすべて問題ありませんが、再デプロイすると、読み込まれたクラスの合計数が増加します。この情報を確認するために、visualVM を使用しています。それがどうあるべきか、それともメモリリークです。この問題を解決するには?ありがとう

0 投票する
8 に答える
6703 参照

java - Java クラスローダー

クラスローダーの背後にある概念について、誰かが私に良いリソースを指摘したり、説明したりできますか? クラスローダーhttp://www.onjava.com/lpt/a/5586で次のリソースを見つけましたが、それでも助けにはなりません。次の質問はばかげているように見えるかもしれませんが、答えようとするといつも混乱します。

  • 開発者がカスタム クラス ローダーを作成するのはなぜですか? Bootstrap クラス ローダーを呼び出してカスタム クラスを呼び出さないのはなぜですか? カスタム クラス ローダーを定義する必要性は何ですか?

  • クラスローダの種類が多いのはなぜですか? 例: Bootsrap、Comman、Catalina クラスローダーなど、

    前もって感謝します。

0 投票する
2 に答える
1328 参照

java - Java ロギング構成は部分的にのみ考慮されます

展開プロセスを簡素化するためにone-jarパッケージャーを使用して配信しようとしているプロジェクトに問題があります。
パッケージングがなければ、すべてが正常に機能し、ロギング構成が完全にロードされますが、パッケージ内では、構成の一部のみが適用されます。

だから、ここに私が使用するlogging.propertiesがあります:

そして、私のメインクラスでは、これをロードする方法は次のとおりです。

ログは正しいファイルに出力されるため、ログ レベルと FileHandler パターンはよく理解されていますが、行の XML 出力として、通常は CSV 形式を出力するため、フォーマッタが読み込まれていないと思われます。

クラスパスの問題に関連している可能性がありますか? 誰もこれを処理する方法を知っていますか?

0 投票する
3 に答える
10918 参照

java - Spring フレームワーク - クラスローダーの関係

おそらくSpring /クラスローダーの関係に関連する問題があります。

私は今、質問の冗長さをお詫びします。

専用の JVM 内で実行することを意図して作成されたレガシー Java アプリケーションが多数あります。リソースの使用状況を調べた結果、単一の JVM 内で複数のアプリケーションを実行することで効率が向上することがわかりました。そのコンテキスト内で、コンテナー (またはサンドボックス) 内で各アプリケーションを実行できる、環境用に特別に設計されたコンテナー マネージャーを作成しました。コンテナを分離するこの機能の基礎は、もちろんカスタム クラス ローダーです。

Spring フレームワークを使用するアプリケーションに遭遇するまで、すべてがうまく機能します。以下のようなフラグメントを含む Spring 構成ファイルがあります。


以下は、Spring が Bean をインスタンス化しているときのログ ファイルの一部です。

DEBUG [South Agent 1] (DefaultSingletonBeanRegistry.java:162) - シングルトン Bean 'MDDStructurPackager' の共有インスタンスを作成しています

DEBUG [South Agent 1] (AbstractAutowireCapableBeanFactory.java:378) - Bean 'MDDStructurPackager' のインスタンスを作成しています

DEBUG [South Agent 1] (AbstractAutowireCapableBeanFactory.java:453) - Bean 'MDDStructurPackager' を熱心にキャッシュして、潜在的な循環参照を解決できるようにする

DEBUG [South Agent 1] (AbstractBeanFactory.java:213) - シングルトン Bean 'Logger' のキャッシュされたインスタンスを返す

DEBUG [South Agent 1] (CachedIntrospectionResults.java:242) - クラス [abc.def.mdd.msg.alarm.huawei.MDDPackagerAlarmM2000] の BeanInfo の取得

DEBUG [South Agent 1] (CachedIntrospectionResults.java:258) - クラス [abc.def.mdd.msg.alarm.huawei.MDDPackagerAlarmM2000] の PropertyDescriptors のキャッシュ

DEBUG [South Agent 1] (CachedIntrospectionResults.java:267) - タイプ [java.lang.Class] の Bean プロパティ 'class' が見つかりました

DEBUG [South Agent 1] (CachedIntrospectionResults.java:267) - タイプ [java.lang.String] の Bean プロパティ 'colectionDate' が見つかりました

DEBUG [South Agent 1] (CachedIntrospectionResults.java:267) - タイプ [abc.def.mdd.msg.MDDComponent] の Bean プロパティ 'component' が見つかりました

DEBUG [South Agent 1] (CachedIntrospectionResults.java:267) - タイプ [java.lang.String] の Bean プロパティ 'fileType' が見つかりました

DEBUG [South Agent 1] (CachedIntrospectionResults.java:267) - タイプ [java.util.ArrayList] の Bean プロパティ 'listCommonWords' が見つかりました

DEBUG [South Agent 1] (CachedIntrospectionResults.java:267) - タイプ [java.util.ArrayList] の Bean プロパティ 'listHeader' が見つかりました

DEBUG [South Agent 1] (CachedIntrospectionResults.java:267) - タイプ [abc.def.mdd.logger.Logger] の Bean プロパティ 'logger' が見つかりました

DEBUG [South Agent 1] (CachedIntrospectionResults.java:267) - タイプ [java.util.Map] の Bean プロパティ 'mapDelimiter' が見つかりました

DEBUG [South Agent 1] (CachedIntrospectionResults.java:267) - タイプ [java.util.Map] の Bean プロパティ 'mapElement' が見つかりました

DEBUG [South Agent 1] (CachedIntrospectionResults.java:267) - タイプ [java.lang.String] の Bean プロパティ 'namePackager' が見つかりました

DEBUG [South Agent 1] (CachedIntrospectionResults.java:267) - タイプ [java.lang.String] の Bean プロパティ 'nameSpaceXMLSchema' が見つかりました

DEBUG [South Agent 1] (CachedIntrospectionResults.java:267) - タイプ [java.lang.String] の Bean プロパティ 'nodeName' が見つかりました

DEBUG [South Agent 1] (CachedIntrospectionResults.java:267) - タイプ [java.lang.String] の Bean プロパティ 'packageXMLSchema' が見つかりました

DEBUG [South Agent 1] (CachedIntrospectionResults.java:267) - タイプ [abc.def.mdd.channel.ProcessingLayerListener] の Bean プロパティ 'processingLayerListener' が見つかりました

DEBUG [South Agent 1] (CachedIntrospectionResults.java:267) - タイプ [java.lang.String] の Bean プロパティ 'realm' が見つかりました

DEBUG [South Agent 1] (CachedIntrospectionResults.java:267) - タイプ [java.lang.String] の Bean プロパティ 'statesObject' が見つかりました

DEBUG [South Agent 1] (AbstractAutowireCapableBeanFactory.java:406) - Bean 'MDDStructurPackager' のインスタンスの作成が完了しました

DEBUG [South Agent 1] (DefaultSingletonBeanRegistry.java:162) - シングルトン Bean 'ListAlarmChannel' の共有インスタンスの作成

DEBUG [South Agent 1] (AbstractAutowireCapableBeanFactory.java:378) - Bean 'ListAlarmChannel' のインスタンスを作成しています

DEBUG [South Agent 1] (AbstractAutowireCapableBeanFactory.java:453) - 潜在的な循環参照を解決できるように、Bean 'ListAlarmChannel' を熱心にキャッシュする

DEBUG [South Agent 1] (DefaultSingletonBeanRegistry.java:162) - シングルトン Bean 'Jakarta' の共有インスタンスの作成

DEBUG [South Agent 1] (AbstractAutowireCapableBeanFactory.java:378) - Bean 'Jakarta' のインスタンスを作成しています

DEBUG [South Agent 1] (AbstractBeanFactory.java:213) - シングルトン Bean 'MDDStructurPackager' のキャッシュされたインスタンスを返す

情報: CORBA_HUAWEI_M2KJKT_ALARM (23447542): クラスパスに「/opt/app/abcdef/rt_dev/lib/logkit-1.2.jar」を追加しました。

情報: CORBA_HUAWEI_M2KJKT_ALARM (23447542): クラスパスに「/opt/app/abcdef/rt_dev/lib/avalon-framework-4.1.5.jar」を追加しました。

情報: CORBA_HUAWEI_M2KJKT_ALARM (23447542): クラスパスに「/opt/app/abcdef/rt_dev/lib/concurrent-1.3.2.jar」を追加しました。

情報: CORBA_HUAWEI_M2KJKT_ALARM (23447542): クラスパスに「/opt/app/abcdef/rt_dev/lib/antlr-2.7.2.jar」を追加しました。

DEBUG [South Agent 1] (ConstructorResolver.java:195) -
コンストラクタ [public abc.def.mdd.channel.corba.M2000AlarmChannel(
java.lang.String, int, java.lang.String, java.lang.String, com.citycorp.mdd.msg.MDDComponent ) は
、Bean 'Jakarta' の java.lang.Exception ] をスローします: org.springframework.beans.factory.UnsatisfiedDependencyException:
ファイル [/opt/app/ abcdef/rt_dev/etc/HUAWEI_M2KJKT_ALARM.xml]:
タイプ [java.lang.String] のインデックス 0 を持つコンストラクター引数によって表現された満たされていない依存関係:
タイプ [abc.def.mdd.msg.alarm.huawei.MDDPackagerAlarmM2000] のコンストラクタ引数値を必要なタイプ [java.lang.String] に変換できませんでした: タイプ [abc.def.mdd.msg.alarm の値を変換できませんでし
た] .huawei.MDDPackagerAlarmM2000] を必要なタイプ [java.lang.String] に変更します。
ネストされた例外は java.lang.IllegalArgumentException: 型 [abc.def.mdd.msg.alarm.huawei.MDDPackagerAlarmM2000] の値を必要な型 [java.lang.String] に変換できません:
一致するエディターまたは変換戦略が見つかりません


以下は、abc.def.mdd.channel.corba.M2000AlarmChannel クラスのコンストラクターのシグネチャです。

public M2000AlarmChannel( MDDComponent コンポーネント )

public M2000AlarmChannel( String host, int port, String username, String password, MDDComponent componenet )

クラス abc.def.mdd.msg.alarm.huawei.MDDPackagerAlarmM2000 は、MDDComponent (bean MDDStructurPackager) を実装します。



ご覧のとおり、Spring はいくつかの Bean をインスタンス化しています。MDDStructurPackager は問題ありません。

問題は、'Jakarta' Bean のインスタンス化です。

行の意味:

ファイル [/opt/app/abcdef/rt_dev/etc/HUAWEI_M2KJKT_ALARM.xml] で定義された「Jakarta」という名前の Bean の作成中にエラーが発生しました:

タイプ [java.lang.String] のインデックス 0 を持つコンストラクター引数によって表現された満たされていない依存関係:

タイプ [abc.def.mdd.msg.alarm.huawei.MDDPackagerAlarmM2000] のコンストラクタ引数値を必要なタイプ [java.lang.String] に変換できませんでした:

明確ではありません。適切なコンストラクターを決定しようとするときの型の混乱の理由がわかりません。この問題は、インターフェース MDDComponent のロードに関連している可能性があります。クラスローダー階層で関連していない異なるクラスローダーによって2回ロードされた場合、正しいコンストラクターの決定に関連する問題が想像できます。

ありがたく受け取ったアイデアはすべて、私はストローをつかんでいます。

ありがとうブライアン

0 投票する
2 に答える
5008 参照

websphere - Websphere クラスローダー委任モード

デフォルトのクラスローダー委任モード、つまりPARENT-FIRSTで WebSphere 6.1 アプリケーション サーバーを使用しています。これをPARENT-LASTに変更して、jsf 実装または Web サービス スタックを選択できるようにすることを検討しています。

PARENT-FIRST がデフォルトであるため、何人の人が PARENT-LAST に切り替えたのか、切り替えた理由は何だったのか、切り替えてから生活が良くなったのだろうか :)

本番環境には多くのアプリケーションがあるため、切り替えて何が起こるかを確認することはできません。切り替えると、多くのテストが行​​われるため、PARENT-LAST に切り替えた場合はフィードバックをお願いします。

ありがとう

0 投票する
2 に答える
514 参照

java - クラス java.security.SecureClassLoader を拡張するには?

独自の ClassLoader を作成したい。アプレットのデフォルトの ClassLoader として、より高速で動的になるはずです。

しかし、メソッドをどのように実装すればよいかわかりません:

CodeSource に有効な証明書がある場合も、上位実装は権限を付与しません。

証明書自体を検証する必要がありますか、それとも Java VM から既に検証され、ユーザーから受け入れられていますか?

0 投票する
2 に答える
3647 参照

java - Java Swing の問題

マッチを見つけなければならないカードのボードがあります。2 つの変数がbuttonAありbuttonB、クリックされた四角形を追跡します。

それらが等しい場合、次のコードを追加するだけでそれらをボードから削除できます。

一致を見つけた後、すべてのボタンに同じ画像を配置するにはどうすればよいですか? 次のことを試しましたが、画像を変更する代わりに、ボタンに同じ画像をそのまま残します

0 投票する
2 に答える
1354 参照

jboss - 分離された .EAR ファイル内にデプロイされた場合の jboss 4.2.2 での Web モジュールの分離

分離された.EARファイル内にデプロイされた場合、jboss 4.2.2でWebモジュールの分離(つまり、含まれる各Webアプリが同じ.EAR内の他のアプリから分離される)に到達するにはどうすればよいですか?

Jboss 4.2.2 は、EAR ファイルのデプロイ時に Web モジュール (jboss-web) レベルのデプロイメント記述子クラスのロード設定が無視されるという警告を出し続けます。

0 投票する
1 に答える
988 参照

java - 別のプラグインで DLL とネイティブ コールを分離する

関連するネイティブ JNI クラスからいくつかの DLL を分離したいと考えています。

プラグイン:

  • プラグイン A では、プラグインのロード時に dll が配置およびロードされます。
  • プラグイン B (A に依存) には、A の DLL のネイティブ メソッド呼び出しを含む JNI クラスが配置されます。

JNI クラスが見つからないため、実行時に UnsatisfiedLinkError が発生します。MANIFEST ファイルを更新して、クラスローダー ロジックを更新しようとしています。

プラグイン A:

プラグイン B:

しかし、これも機能していません。解決策を知っていますか?

編集:

マニフェスト A:

マニフェスト B: