2

java.util.loggingJava アプリケーションへのログインに使用しています。javax.xml.ws.Endpointまた、SOAP インターフェイスの公開にも使用しています。

時間の経過とともに、次のようなログエントリで起動時にすべて表示される例外をどんどん追加しました。

Jan 24, 2011 12:29:27 PM com.sun.xml.internal.ws.model.RuntimeModeler getExceptionBeanClass
INFO: Dynamically creating exception bean Class de.wi08e.myhome.frontend.jaxws.NotLoggedInBean

それらをブロックするために次のフィルターを試しましたが、どのクラスで取得するかわかりませんgetLogger:

/* Filter ExceptionBeanClass logs */
Logger loggerInfo = Logger.getLogger("javax.xml.ws.Endpoint");
loggerInfo.setFilter(new Filter() {

    @Override
    public boolean isLoggable(LogRecord l) {
        System.out.println(l.getMessage());
        if (l.getMessage().startsWith("Dynamically creating exception bean Class"))
            return false;
        return true;
    }

});

このログエントリを作成するクラスを見つける方法を知っている人はいますか? この神経質なメッセージを除外する別の方法はありますか?

編集:私も試しLogger.getLogger("com.sun.xml.internal.ws.model.RuntimeModeler")ましたが、まだ機能していません...

4

4 に答える 4

4

次のフラグを指定して Java プログラムを実行するだけでよいはずです-Djava.util.logging.config.file=<mylogging.properties>。 mylogging.properties は、コードではなく、次の内容のファイルです。

javax.enterprise.resource.webservices.jaxws.server.level = WARN

http://www.docjar.com/html/api/com/sun/xml/internal/ws/model/RuntimeModeler.java.htmlから

  186       private static final Logger logger =
  187           Logger.getLogger(
  188               com.sun.xml.internal.ws.util.Constants.LoggingDomain + ".server");

そして定数から

  public static final java.lang.String LoggingDomain = "javax.enterprise.resource.webservices.jaxws";
于 2011-01-24T11:56:31.703 に答える
1

編集:クレメント P は、私のずっと前にこの質問に答えました。すべての親指は彼に行くべきです!

少し別の方法を使用しているため、ここで私の答えを保持します。


私は今それを自分で解決しました。要するに、これは解決策です:

Logger.getLogger("javax.enterprise.resource.webservices.jaxws.server").setLevel(Level.WARNING);

誰かが興味を持っているなら、これは私がそれを見つけた方法です:

com.sun.xml.internal.ws.model.RuntimeModelerのメソッド getExceptionBeanClass がメッセージを処理します。Logger関数でインスタンス化された静的を使用します

Logger.getLogger(com.sun.xml.ws.util.Constants.LoggingDomain + ".server");

定数をコピー アンド ペーストできるcom.sun.xml.ws.util.ConstantsリードをここでGoogle で検索します。LoggingDomain

ただし、注意してください。このソリューションは、Sun の「プライベート」名前空間と実装に依存するため、すべての JRE で機能するとは限りません。

于 2011-01-24T17:25:09.880 に答える
0

ログ エントリは、このログ メッセージを生成するのが com.sun.xml.internal.ws.model.RuntimeModeler クラスであることを示しているようです。このロガーのレベルを上げることで、それを除外できるはずです。

于 2011-01-24T11:51:49.627 に答える
0

または、欠落しているクラスを作成することもできます。実際、これは Web サービスを作成するときに従う標準的な手順です。

このクラス (つまりde.wi08e.myhome.frontend.jaxws.NotLoggedInBean ) を作成すると、既存のクラスを実行時に作成せずにそのまま使用します。

実際、これらのクラスを自分で作成する必要さえありません。これらは wsgen ツールを使用して生成できます。wsgen.exeは Java jdk の一部です。したがって、コマンドラインからこれを実行するだけです。

wsgen.exe -verbose -keep -cp . de.wi08e.myhome.frontend.WebService -d source

次に、作成したファイルを正しいプロジェクト ソース フォルダーに移動します。

于 2014-02-21T15:43:30.587 に答える