我想用deobfuscate選項配置遠程日誌記錄服務。我知道符號映射默認是在/ WEB-INF/deploy/MODULNAME/symbolMaps文件夾中生成的,GWT遠程記錄器實現(RemoteLoggingServiceImpl)使用StackTraceDeobfuscator,它需要symbolMaps dir才能工作。我認爲RemoteLoggingServiceImpl應該自動將正確路徑設置爲symbolMaps目錄,但在調試模式下,我發現在RemoteLoggingServiceImpl上不會調用setSymbolMapsDirectory方法。要解決這個問題我使用 「代理」 手動調用該方法:如何在Tomcat下配置GWT stacktrace deobfuscator?
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 parametr
此解決方案定義目錄,但只有當我設置爲symbolMaps目錄的絕對路徑,什麼是有點不切實際;)
現在我的問題是:什麼是配置RemoteLoggingServiceImpl正道在Tomcat上使用StackTraceDeobfuscator?
不知道我跟隨。你是說在調試期間不調用servlet init方法?通過調試,你的意思是開發模式?我有一個類似的init實現(見下面的答案)。 –