我的应用程序在开发模式(使用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")
那是对的吗?我应该使用它吗?
最佳答案
我认为问题与模块名称有关。在继承开始之前,尝试添加gwt.xml的这一行:
<module rename-to='voituretourisme'>
然后在您的web.xml文件中尝试更改为:
<url-pattern>/voituretourisme/calculateurDataService</url-pattern>
您的html文件应类似于:
<script language="javascript" src="voituretourisme/voituretourisme.nocache.js"></script>
注意区分大小写,我相信这应该正确编译,并且可以在开发模式和生产模式下工作。