私はセキュリティプロバイダを登録します。セキュリティプロバイダはJavaでClassLoaderのリークを引き起こしますか?私のJava EE(Glassfishの3.1.1)アプリケーションで
public static final class XoauthProvider extends Provider {
public XoauthProvider() {
super("Google Xoauth Provider", 1.0, "Provides the Xoauth experimental SASL Mechanism");
put("SaslClientFactory.XOAUTH", "blah.server.utils.XoauthSaslClientFactory");
}
}
...
XoauthProvider xoauthProvider = new XoauthProvider();
Security.addProvider(xoauthProvider);
私は再デプロイ後、次の例外を受信されています:
java.lang.IllegalStateException: WEB9031: WebappClassLoader unable to load resource [blah.server.utils.XoauthSaslClientFactory], because it has not yet been started, or was already stopped
は、私は少しをデバッグし、そしてそれはそうです再デプロイ後、サーバーはこのクラスをロードするときに古いクラスローダーを使用します。
私が正しく、ClassLoaderのリークである場合、アプリケーションが再デプロイ/アンデプロイされたときにセキュリティプロバイダの登録を解除する適切な方法は何でしょうか?または、私は手動で例外をスローするメソッドを呼び出す前に、プロバイダを手動で登録解除/再登録する必要がありますか?
ところで、私はJRebelを使用しています。