首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GWT如何在风格混淆的生产中消除混淆?

GWT如何在风格混淆的生产中消除混淆?
EN

Stack Overflow用户
提问于 2014-02-20 14:34:11
回答 2查看 1.3K关注 0票数 0

我使用的是GWT 2.6和GWT-log3.3.0。我试图用gwt-日志获取远程日志消息。我试过这个:

代码语言:javascript
复制
Log.fatal("This is what an exception might look like", new RuntimeException("2 + 2 = 5"));

这是我的gwt.xml:

代码语言:javascript
复制
    <module rename-to='testgwt'>

<inherits name="com.google.gwt.logging.Logging" />
<set-property name="gwt.logging.logLevel" value="INFO" />
<set-property name="gwt.logging.enabled" value="TRUE" />
<set-property name="gwt.logging.popupHandler" value="DISABLED" />
<set-property name="gwt.logging.developmentModeHandler" value="ENABLED" />  


<inherits name="com.allen_sauer.gwt.log.gwt-log-DEBUG" />
<inherits name="com.allen_sauer.gwt.log.gwt-log-RemoteLogger" />

<set-property name="log_ConsoleLogger" value="ENABLED" />
<set-property name="log_DivLogger" value="ENABLED" />
<set-property name="log_FirebugLogger" value="ENABLED" />
<set-property name="log_GWTLogger" value="ENABLED" />
<set-property name="log_SystemLogger" value="ENABLED" />

<set-property name="compiler.emulatedStack" value="true" />
<set-configuration-property name="compiler.emulatedStack.recordLineNumbers" value="true"/>
<set-configuration-property name="compiler.emulatedStack.recordFileNames" value="true"/>

我的入门课:

代码语言:javascript
复制
public void onModuleLoad() {

    Log.setUncaughtExceptionHandler();

    Scheduler.get().scheduleDeferred(new ScheduledCommand() {
          @Override
          public void execute() {
            onModuleLoad2();
          }
        });

}

public void onModuleLoad2() {

   Log.fatal("This is what an exception might look like", new RuntimeException("2 + 2 = 5"));
}

我可以看到,在web/部署/web/符号地图/中有许多大小为4.3MB的文件。因此,我想symbolMaps是成功生成的。

我的远程servlet配置是:

代码语言:javascript
复制
<servlet>
    <servlet-name>gwt-log-remote-logger-servlet</servlet-name>
    <servlet-class>com.allen_sauer.gwt.log.server.RemoteLoggerServiceImpl</servlet-class>
    <init-param>
        <param-name>symbolMaps</param-name>
        <param-value>WEB-INF/deploy/testgwt/symbolMaps/</param-value>
    </init-param>

</servlet>
<servlet-mapping>
    <servlet-name>gwt-log-remote-logger-servlet</servlet-name>
    <url-pattern>/testgwt/gwt-log</url-pattern>
</servlet-mapping>

我编译时风格模糊。在我的WEB/lib文件夹中,我有gwt-log.3.3.jar文件。

在客户端我得到

代码语言:javascript
复制
(-:-) 2014-02-20 23:09:54,529 [FATAL] This is what an exception might look like
java.lang.RuntimeException: 2 + 2 = 5
    at Unknown.ui(StackTraceCreator.java:180)
    at Unknown.Zf(StackTraceCreator.java:518)
    at Unknown.Yf(Throwable.java:56)
    at Unknown.kh(Exception.java:29)
    at Unknown.mh(RuntimeException.java:29)
    at Unknown.PW(Testgwt.java:66)
    at Unknown.TW(Testgwt.java:52)
    at Unknown.ki(SchedulerImpl.java:180)
    at Unknown.bi(SchedulerImpl.java:345)
    at Unknown.oi(SchedulerImpl.java:78)
    at Unknown.ii(SchedulerImpl.java:138)
    at Unknown.Kh(Impl.java:290)
    at Unknown.Oh(Impl.java:347)
    at Unknown.anonymous(Impl.java:93)
    at Unknown.anonymous(UnloadSupport.java:42)

在服务器端,我得到:

代码语言:javascript
复制
SEVERE: This is what an exception might look like
java.lang.RuntimeException: 2 + 2 = 5
    at Unknown.ui(StackTraceCreator.java:180)
    at Unknown.Zf(StackTraceCreator.java:518)
    at Unknown.Yf(Throwable.java:56)
    at Unknown.kh(Exception.java:29)
    at Unknown.mh(RuntimeException.java:29)
    at Unknown.PW(Testgwt.java:66)
    at Unknown.TW(Testgwt.java:52)
    at Unknown.ki(SchedulerImpl.java:180)
    at Unknown.bi(SchedulerImpl.java:345)
    at Unknown.oi(SchedulerImpl.java:78)
    at Unknown.ii(SchedulerImpl.java:138)
    at Unknown.Kh(Impl.java:290)
    at Unknown.Oh(Impl.java:347)
    at Unknown.anonymous(Impl.java:93)
    at Unknown.anonymous(UnloadSupport.java:42)

我要做什么才能使服务器端的去模糊处理在生产中使用样式混淆?

编辑:

即使我不使用:

代码语言:javascript
复制
     symbolMaps         WEB-INF/deploy/testgwt/symbolMaps/     

它不会改变任何事情。symbolMaps文件夹的路径似乎是正确的。在我的eclipse应用程序项目中,也有一些文件是在gwt comile之后生成的。请参阅我所做的这个演示eclipse项目:https://github.com/confile/gwtlogtest

编辑:我在Tomcat 7.0.52服务器上运行我的应用程序。在我的catalina.log中有以下警告:

代码语言:javascript
复制
Feb 21, 2014 12:08:11 AM com.allen_sauer.gwt.log.server.ServerLogImplJDK14 log
WARNING: Servlet configuration parameter 'symbolMaps' specifies directory
'WEB-INF/deploy/testgwt/symbolMaps/' which does not exist or is not relative 
 to your server's current working directory '/'

Feb 21, 2014 12:08:11 AM com.allen_sauer.gwt.log.server.ServerLogImplJDK14 log
WARNING: In order to enable stack trace deobfuscation, please specify 
the 'symbolMaps' <init-param> for the com.allen_sauer.gwt.log.server.RemoteLoggerServlet servlet in your web.xml

似乎找不到symbolMaps了。我查过它就在这条路上。

EN

回答 2

Stack Overflow用户

发布于 2014-02-20 16:22:57

模块中有这些属性吗?

代码语言:javascript
复制
<set-property name="compiler.stackMode" value="emulated" />
<set-configuration-property name="compiler.emulatedStack.recordLineNumbers" value="true" />
<set-configuration-property name="compiler.emulatedStack.recordFileNames" value="true" />

请注意,如果希望对生产代码进行完全优化,则应删除这些属性。

票数 0
EN

Stack Overflow用户

发布于 2016-12-08 11:51:01

这是我的配置,它工作得很好:客户端配置(Task.gwt.xml):

代码语言:javascript
复制
<!-- Enabling server side logging: -->
<inherits name="com.google.gwt.logging.Logging"/>
<set-property name="gwt.logging.logLevel" value="SEVERE"/>
<set-property name="gwt.logging.simpleRemoteHandler" value="ENABLED" />
<!-- To show line number of occurred exception in server side logging (This will increase compiled js size): -->
<set-property name="compiler.stackMode" value="emulated"/>
<set-configuration-property name="compiler.emulatedStack.recordLineNumbers" value="true"/>
<set-configuration-property name="compiler.emulatedStack.recordFileNames" value="true"/>

<set-property name="gwt.logging.enabled" value="TRUE" />
<set-property name="gwt.logging.developmentModeHandler" value="ENABLED" />
<set-property name="gwt.logging.systemHandler" value="ENABLED" />
<set-property name="gwt.logging.popupHandler" value="DISABLED" />
<set-property name="gwt.logging.consoleHandler" value="ENABLED" />
<set-property name="gwt.logging.firebugHandler" value="ENABLED" />

服务器端配置(web.xml):

代码语言:javascript
复制
<!-- gwt remote logging -->
<servlet>
    <servlet-name>remoteLogging</servlet-name>
    <servlet-class>com.google.gwt.logging.server.RemoteLoggingServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>remoteLogging</servlet-name>
    <url-pattern>/gwt/ir.asta.zrm.cm.gwt.Task/remote_logging</url-pattern>
</servlet-mapping>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21910865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档