Java Tomcat 5.5上的GWT部署

Java Tomcat 5.5上的GWT部署,java,tomcat,gwt,Java,Tomcat,Gwt,我正在尝试将我的GWT项目部署到远程服务器。我无法使它正常运行。出于某种原因,浏览器查找相对于域根而不是相对于html页面位置的资源 部署后,项目具有以下文件结构: /public_html/ProjectName /public_html/ProjectName/ProjectName.html /public_html/ProjectName/WEB-INF /public_html/ProjectName/META-INF /public_html/ProjectName/Css /pub

我正在尝试将我的GWT项目部署到远程服务器。我无法使它正常运行。出于某种原因,浏览器查找相对于域根而不是相对于html页面位置的资源

部署后,项目具有以下文件结构:

/public_html/ProjectName
/public_html/ProjectName/ProjectName.html
/public_html/ProjectName/WEB-INF
/public_html/ProjectName/META-INF
/public_html/ProjectName/Css
/public_html/ProjectName/Images
/public_html/ProjectName/ProjectName/ProjectName.nocache.js
/public_html/ProjectName/ProjectName/hosted.html
/public_html/ProjectName/ProjectName/etc...
关于这些图像,我的uibinder.xml上有一个示例:

<g:Image ui:field="imgLogo" styleName="{style.img-logo}" url="/images/logo.png"/>

您可以在以下网站上亲自查看:

该应用程序在开发过程中运行良好

我尝试将默认GWT部署到同一台服务器。不幸的是,当我发出发送请求时,我收到了相同的错误,说明找不到URL。您可以在以下网址查看:

下面是web.xml:

 <servlet>
    <servlet-name>greetServlet</servlet-name>
    <servlet-class>com.ohapp.deployment.server.GreetingServiceImpl</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>greetServlet</servlet-name>
    <url-pattern>/deployment/greet</url-pattern>
  </servlet-mapping>

greetServlet
com.ohapp.deployment.server.GreetingServiceImpl
greetServlet
/部署/问候
我知道该项目是可行的,因为我将其部署在另一台服务器上并获得了假装的结果:

另外,我已经测试了Tomcat服务器,并且正在工作:

唯一的区别是,一台服务器在端口8080上使用Tomcat 7.0.42版本,另一台不工作的服务器在端口80上使用Tomcat 5.5.36版本

我正在使用GWT2.6.0

我将感谢任何帮助


谢谢。

根据您的项目结构:

  • 如果您在客户端类中使用图像,那么链接应该与
    ProjectName.html
    相关,因此它应该是
    images/logo.png
    ,就像您在CSS(CSS/web纹身n.CSS)中所做的那样
  • 如果您使用的是来自
    CSS
    文件的图像,那么URL应该是
    。/images/logo.png
尽管如此,我不明白为什么它在Tomcat7上工作而在Tomcat5.5.36上不工作


当涉及到资源的URL时,浏览器缓存可能会欺骗您,因此,请确保每次更改资源或链接时,您都会启动私人浏览。

根据点击此URL上的“发送”按钮时收到的错误消息,显示:

在此服务器上找不到请求的URL
/deployment/deployment/greet

很明显,URL的格式不正确。发现一个额外的
/deployment
导致此问题

请确认您在申请表中指定了以下事项

注意:这里我创建了一个名为
greet
的远程服务。可能是您将其定义为
deployment/greet
,这就是URL格式不正确的原因

RemoteService.java:

@RemoteServiceRelativePath("greet")
public interface GreetService extends RemoteService {
    ...
}
web.xml:

<servlet>
  <servlet-name>greetServlet</servlet-name>
  <servlet-class>com.x.y.z.server.GreetServiceImpl</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>greetServlet</servlet-name>
  <url-pattern>/deployment/greet</url-pattern>
</servlet-mapping>

greetServlet
com.x.y.z.server.greetservicepimpl
greetServlet
/部署/问候

您使用完全相同的文件和过程将其部署到两台服务器?Tomcat日志中什么都没有?在works上尝试../images/logo.png而不是/images/logo.png。你能发布你的项目结构吗?@ThomasBroyer是的,它们是完全相同的项目,并且以相同的方式部署。我正在使用一个共享tomcat实例,但我没有访问日志的权限。@Moh我在问题中添加了文件结构。我添加了web.xml文件的内容。正如你所看到的,这和你建议的一样。另外,我必须指出,它在不同的服务器上工作,因此我看不出导致此问题的服务器之间有什么不同。如果
URL模式
web.xml
RemoteService
中定义的情况不同,则可能会产生问题。首先,感谢您抽出时间。我可以看到问题,但我认为我们没有抓住重点。完全相同的部署在不同的服务器上工作。我感到困惑,因为在一种情况下,它假定了一条相对路径,而在另一种情况下,它假定了一条固定路径。我做错了什么?此外,GreetServiceImpl与您的完全相同。有问题的代码不是我写的,而是谷歌写的。是默认项目。我还可以做些什么来帮助定位问题?我正在分析这个问题,我得出结论,
X-GWT-Module-Base
中存在一些问题,这等于
http://www.tattoon.pt/deployment/deployment/
。这是错误的。让我更新答案中的屏幕截图。
X-GWT-Module-Base
必须等于
http://www.tattoon.pt/deployment
。我已经创建了一个相同的应用程序和一个相同的URL,但它对我来说运行良好。它在Eclipse中工作正常吗?