我启动了GWTP Carstore应用程序
https://github.com/ArcBees/GWTP-Samples/tree/master/carstore
在超级开发模式下。它有许多标签,每个标签对应一个用@ProxyCodeSplit
注释的地方,例如
@ProxyCodeSplit
@NameToken(NameTokens.MANUFACTURER)
interface MyProxy extends ProxyPlace<ManufacturerPresenter> {
}
点击每个标签,我预计每次加载不同的javascript文件;然而事实并非如此,从我附上的Fiddler截图中可以看出。
有人看到在启动期间已经加载了所有Javascript(当我点击不同的标签时,返回JSON的各种请求被发送到服务器。)
Carstore应用程序配置是否不完整,或者我在这里遗漏了什么?
答案 0 :(得分:0)
好吧,如果其他人开始对此表示不满:正如我所说,我看到如果我使用Maven GWT插件以超级开发模式mvn clean gwt:run
启动Carstore,则不会发生代码拆分。
在将Carstore部署到Tomcat之后,尝试查看是否还没有发生代码拆分,我使用mvn clean package
创建了Carstore WAR;然而,它无法部署(使用Java 8,堆栈跟踪已
Caused by: java.lang.NullPointerException: No API environment is registered for this thread.
at com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppId(DatastoreApiHelper.java:179)
内)。
所以我尝试了一个更简单的项目,我在我的机器上。同样地(至少在我的项目的pom.xml中使用Maven GWT插件配置)我看到在超级开发模式中所有Javascript都在启动时加载。然而,当我创建这个更简单的项目的WAR并将其(成功地这次)部署到Tomcat时,我确实看到在&#34; place&#34;之后加载了其他Javascript文件。被改变了。因此,在部署到Tomcat之后,代码拆分按预期工作。