eclipse - 将 gwt 应用程序部署到 tomcat 不会加载已编译的 javascript

标签 eclipse gwt tomcat

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

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

检查这个: Deploying GWT app from GAE to Tomcat

关于eclipse - 将 gwt 应用程序部署到 tomcat 不会加载已编译的 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9925801/

相关文章:

java - GAE/J 该应用程序不存在 (app_id=u'application-id')

java - GWT:如何在 CellTable 上实现过滤?

ruby-on-rails - 在 TC 服务器上部署 Rails 应用程序

eclipse - 如何使用 egit 删除提交?

java - 如何理解开源项目/库?

java - 登录失败

apache - 如何配置 apache tomcat 指向我的项目?

工作区外的 Eclipse .metadata 文件夹

java - 我应该将一个实体转换为 Repository 对象中的 DTO 并将其返回给服务层吗?

tomcat - 如何创建指向 Web 服务器中不同文件夹的子域?