gwt app部署到tomcat不会加载编译的javascript

时间:2012-03-29 12:56:10

标签: eclipse gwt tomcat

我使用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 />

2 个答案:

答案 0 :(得分:0)

您是否通过以下方式编译项目:

  

项目权利clic&gt;谷歌&gt; gwt编译

然后

  

项目权利clic&gt;出口&gt; WAR文件

这是我继续进行的方式,它有效!

检查一下: Deploying GWT app from GAE to Tomcat

答案 1 :(得分:0)

经过长时间的搜索和测试,我不知道GWT引导过程是如何工作的。我查看了我的module.gwt.xml文件,发现我的一个合作伙伴添加了以下行以减少排列数量:

<collapse-all-properties />

删除这一行使我们回到了18个排列,并将WAR文件夹部署到我的tomcat webapps目录完成了这项工作。仅编译一次不会生成我的语言环境所需的文件。也许如果我的浏览器语言是英文的,那么第一次就可以解决了。

现在它可以正常编译所有必需的文件。