我使用Eclipse GWT Plug-in构建一个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>
请注意,在我的服务界面中,我使用@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 />
答案 0 :(得分:0)
您是否通过以下方式编译项目:
项目权利clic&gt;谷歌&gt; gwt编译
然后
项目权利clic&gt;出口&gt; WAR文件
这是我继续进行的方式,它有效!
答案 1 :(得分:0)
经过长时间的搜索和测试,我不知道GWT引导过程是如何工作的。我查看了我的module.gwt.xml文件,发现我的一个合作伙伴添加了以下行以减少排列数量:
<collapse-all-properties />
删除这一行使我们回到了18个排列,并将WAR文件夹部署到我的tomcat webapps目录完成了这项工作。仅编译一次不会生成我的语言环境所需的文件。也许如果我的浏览器语言是英文的,那么第一次就可以解决了。
现在它可以正常编译所有必需的文件。