GWT开发模式不起作用(配置web.xml)

时间:2011-08-17 15:23:00

标签: java gwt web.xml development-mode

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

我手动检查了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")

这是对的吗?我应该用吗?

1 个答案:

答案 0 :(得分:2)

我认为问题是模块名称相关。在继承begin:

之前尝试添加gwt.xml的这一行
<module rename-to='voituretourisme'>

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

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

你的html文件应该是:

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

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