我使用 Eclipse GWT 插件构建 GWT 应用程序。稍后,我必须将其部署为 Tomcat webapp。我已经阅读了很多关于如何做到这一点的页面,它看起来非常简单,但在这里不起作用。
如果我使用该插件创建一个新的 Web 应用程序,并将 war 目录内容复制到 de tomcat_install/webapps 文件夹中,它开箱即用,我得到该应用程序并且所有内容都正确加载。
如果我现在对我正在开发的应用程序执行相同的操作几个星期,我什么也得不到,只有我用作加载欢迎页面的纯 html 文件。如果我检查该页面,我可以看到它已正确加载 .nocache.js,但我的页面上没有显示任何控件。
一切都在开发中,我的 servlet 已正确映射。
这是我的 app.gwt.xml :
<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='VirtualLabPortal'>
<inherits name="com.google.gwt.user.User" />
<inherits name='com.google.gwt.user.theme.standard.Standard'/>
<inherits name="com.google.gwt.i18n.I18N"/>
<set-property name="gwt.logging.enabled" value="FALSE"/>
<define-property name="webkitVariant" values="safari, chrome" />
<collapse-all-properties />
<extend-property name="locale" values="en"/>
<extend-property name="locale" values="fr" />
<set-property-fallback name="locale" value="fr"/>
<entry-point
class="com.banctecmtl.ca.vlp.view.webview.client.VirtualLabPortal" />
<source path='view/webview/client' />
<source path='shared' />
<source path='model' />
</module>
我的 web,xml,我的两个 servlet 映射的地方看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<servlet>
<servlet-name>VlpControllerService</servlet-name>
<servlet-class>com.banctecmtl.ca.vlp.view.webview.server.VlpControllerServiceImpl</servlet-class>
</servlet>
<servlet>
<servlet-name>UserAccessService</servlet-name>
<servlet-class>com.banctecmtl.ca.vlp.view.webview.server.UserAccessServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>VlpControllerService</servlet-name>
<url-pattern>/VirtualLabPortal/VlpController</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>UserAccessService</servlet-name>
<url-pattern>/VirtualLabPortal/UserAccess</url-pattern>
</servlet-mapping>
<!-- Default page to serve -->
<welcome-file-list>
<welcome-file>VirtualLabPortal.html</welcome-file>
</welcome-file-list>
</web-app>
请注意,在我的服务接口(interface)中,我使用 @RemoteServiceRelativePath("VlpController")
和 @RemoteServiceRelativePath("UserAccess")
来确保正确的映射。
这是我的入口点的内容,我把它简单化只是为了看看我是否可以让它在部署时工作:
public class VirtualLabPortal implements EntryPoint {
/**
* Entry point method.
*/
public void onModuleLoad() {
RootPanel.get().add(new Label("This"));
}
}
由于我的 html 页面的主体是空的,出现了一个白色页面,javascript 应该在该页面上写入测试标签,但没有任何反应。正如我所说,我的 VirtualLabPortal.nocache.js
已加载到 html 页面中。
我在这里完全遗漏了什么吗?
编辑:
我想我刚明白,我删除了我的合作伙伴添加到 gwt.xml 文件中以减少排列数量的两个属性,到目前为止它似乎已修复:
<set-property name="gwt.logging.enabled" value="FALSE"/>
<define-property name="webkitVariant" values="safari, chrome" />
<collapse-all-properties />
最佳答案
您是否通过以下方式编译您的项目:
project right clic > google > gwt compile
然后
project right clic > export > WAR file
这是我进行的方式,它有效!
关于eclipse - 将 gwt 应用程序部署到 tomcat 不会加载已编译的 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9925801/