3

我的应用程序在开发模式下运行良好(使用 GWT-RPC 调用),但是每当我尝试使用生产模式(通过删除?gwt.codesvr=127.0.0.1:9997URL 的一部分)对其进行测试时,它都会给我一个空白页面。

我手动检查了 VoitureTourisme.html 文件并将 voitureTourisme.nocache.js 文件的路径修改为一个工作路径(这意味着我的 Web.xml 配置不正确,对吧?那为什么它在开发模式下工作?)

现在它看起来像这样 <script language="javascript" src="voitureTourisme/voitureTourisme.nocache.js"></script> ,但它曾经是

src="com.devsys.calculateur.voitureTourisme.VoitureTourisme/com.devsys.calculateur.voitureTourisme.VoitureTourisme.nocache.js" 当我第一次编译时。因为我尝试了不同的变体并编译了几次,所以我现在在我的战争中得到了 2 个模块文件夹:“voitureTourisme”,另一个具有如上所示的完整路径。

我很确定我对如何正确配置 VoitureTourisme.gwt.xml 和 Web.XML 文件感到困惑,因为如果我这样做了,我就不必手动更正编译的 html 文件。在我手动修复它之后(我不应该这样做),我的 RPC 调用显示 404 错误,因为他们没有找到我的服务 servlet(错误的 url)。

希望你能告诉我我的配置出了什么问题以及为什么

Web.xml

<?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">
    <!-- TODO: Add <servlet> tags for each servlet here. -->
    <!-- TODO: Add <servlet-mapping> tags for each <servlet> here. -->
    <!-- TODO: Optionally add a <welcome-file-list> tag to display a welcome file. -->
     <!-- Servlets -->
  <servlet>
    <servlet-name>calculateurDataService</servlet-name>
    <servlet-class>com.devsys.calculateur.voitureTourisme.server.form.CalculateurDataServiceImpl</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>calculateurDataService</servlet-name>
    <url-pattern>/com.devsys.calculateur.voitureTourisme.VoitureTourisme/calculateurDataService</url-pattern>
  </servlet-mapping>
</web-app>

VoitureTourisme.gwt.xml

<module>
    <inherits name="com.google.gwt.user.User"/>
    <inherits name="com.google.gwt.user.theme.standard.Standard"/>
    <inherits name="com.devsys.util.XmlUtil"/>
    <inherits name="com.devsys.util.UrlUtil"/>
    <inherits name="com.google.gwt.i18n.I18N"/>
    <entry-point class="com.devsys.calculateur.voitureTourisme.client.VoitureTourisme"/>
</module>

我也有我的服务接口使用

@RemoteServiceRelativePath("calculateurDataService")

那是对的吗?我应该使用它吗?

4

1 回答 1

2

我认为问题与模块名称有关。尝试在继承开始之前添加 gwt.xml 的这一行:

<module rename-to='voituretourisme'>

然后在您的 web.xml 文件中尝试更改为:

<url-pattern>/voituretourisme/calculateurDataService</url-pattern>

你的 html 文件应该是这样的:

<script language="javascript" src="voituretourisme/voituretourisme.nocache.js"></script>

注意区分大小写,我相信这应该可以正确编译并在开发模式和生产模式下工作。

于 2011-08-18T07:13:20.517 回答