deobfuscate オプションを使用してリモート ロギング サービスを構成したいと考えています。シンボル マップはデフォルトで /WEB-INF/deploy/MODULNAME/symbolMaps フォルダーに生成され、GWT リモート ロガーの実装 (RemoteLoggingServiceImpl) は StackTraceDeobfuscator を使用しますが、これには symbolMaps dir が必要です。RemoteLoggingServiceImpl は、symbolMaps ディレクトリへの正しいパスを自動的に設定する必要があると思いますが、デバッグ モードで、setSymbolMapsDirectory メソッドが RemoteLoggingServiceImpl で呼び出されないことがわかりました。その問題を解決するために、「プロキシ」を使用してそのメソッドを手動で呼び出します。
public class ConfigurableRemoteLoggingServiceImpl extends RemoteLoggingServiceImpl {
@Override
public void init(final ServletConfig config) throws ServletException {
super.init(config);
final String symbolMapsDirectory = config.getInitParameter("symbolMapsDirectory");
setSymbolMapsDirectory(symbolMapsDirectory);
}
}
そしてweb.xmlで
<servlet>
<servlet-name>remoteLogging</servlet-name>
<servlet-class>pl.dandelite.empik.sdl.manager.server.service.ConfigurableRemoteLoggingServiceImpl</servlet-class>
<init-param>
<param-name>symbolMapsDirectory</param-name>
<param-value>C:/symbolMaps</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>remoteLogging</servlet-name>
<url-pattern>/sdlconsole/remote_logging</url-pattern>
</servlet-mapping>
コンパイル中に -extra パラメータを使用してディレクトリを定義します
このソリューションは機能しますが、絶対パスをsymbolMapsディレクトリに設定した場合にのみ、少し非現実的です;)
今私の質問は次のとおりです: Tomcat で StackTraceDeobfuscator を使用して RemoteLoggingServiceImpl を構成する正しい方法は何ですか?