Tomcat 5.5上的GWT部署

时间:2014-03-16 15:53:48

标签: 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
/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"/>

你可以自己看看:

http://www.tattoon.pt/webtattoon/

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

我尝试将默认GWT部署到同一台服务器。不幸的是,我收到同样的错误,指出在发出请求时找不到该URL。你可以查看:

http://www.tattoon.pt/deployment/

这是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>

我知道该项目有效,因为我将其部署在另一台服务器上并实现了假装结果:

http://metalemore.com:8080/deployment/

此外,我已经测试了Tomcat服务器并正在运行:

http://tattoon.pt/jsptest.jsp

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

我正在使用GWT 2.6.0。

我将不胜感激。

谢谢。

2 个答案:

答案 0 :(得分:0)

根据您项目的结构:

  • 如果您在客户端类中使用图像,则链接应该与ProjectName.html相关,因此它应该与您对CSS(css / Webtattoon)的images/logo.png相同。 CSS)
  • 如果您使用CSS文件中的图片,则网址应为../images/logo.png

虽然,我不明白为什么它适用于Tomcat7而不适用于Tomcat 5.5.36。

当涉及到资源的网址时,浏览器缓存可以为您提供技巧,因此请确保每次更改资源或链接时都启动隐私浏览。

答案 1 :(得分:0)

根据点击此http://www.tattoon.pt/deployment/网址上的发送按钮时收到的错误消息:

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

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

请确认您在申请中指定了以下内容。

注意:我在这里创建了一个名为greet的远程服务。可能是您已将其定义为deployment/greet,这就是网址格式错误的原因。

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>