原始的,不太详细的问题在这里找到:无法弄清楚为什么我不能将 GWT 应用程序部署到 Apache Tomcat 7 上。在我写这篇文章的时候,我决定再试一次,这次它成功了,但是,示例应用程序中的 servlet 似乎没有工作。单击按钮时显示“远程过程调用失败”。这是我采取的步骤列表。
以下是我尝试将示例应用程序部署到 Apache Tomcat 7 的操作列表。
设置环境
- 在虚拟机上安装 Ubuntu 12.04
- 更新系统
- 从这里的教程安装 Apache Tomcat 7 https://www.digitalocean.com/community/articles/how-to-install-apache-tomcat-on-ubuntu-12-04。
- 启动它并转到 localhost:8080 以查看它是否正常工作。
获取示例项目
- 已安装 GWT。
- 使用 Eclipse 向导,创建一个名为“SampleApp”的新项目
- 在开发模式下运行一次以确保其正常工作。
- 编译模块。它完成了整个工作 - 编译 6 个排列等。
- 编译成 .war 文件,如下所示http://blog.elitecoderz.net/gwt-and-tomcat-create-war-using-eclipse-to-deploy-war-on-tomcat/2009/12/(文件称为SampleApp.war)
部署
- 将 SampleApp.war 复制到 Apache Tomcat 的 webapps 文件夹中
- .war 会自行解压缩,我现在可以在 localhost:8080/SampleApp/SampleApp.html 上访问我的应用程序。
但是,现在我的问题是服务器端代码似乎不起作用。
localhost_access_log 的内容
127.0.0.1 - - [18/Apr/2013:21:03:43 -0700] “GET /SampleApp/SampleApp.html HTTP/1.1”304 - 127.0.0.1 - - [18/Apr/2013:21:03: 43 -0700] “GET /SampleApp/SampleApp.css HTTP/1.1”304 - 127.0.0.1 - - [18/Apr/2013:21:03:43 -0700] “GET /SampleApp/sampleapp/sampleapp.nocache.js HTTP/1.1" 304 - 127.0.0.1 - - [18/Apr/2013:21:03:43 -0700] "GET /SampleApp/sampleapp/gwt/clean/clean.css HTTP/1.1" 304 - 127.0.0.1 - - [18/Apr/2013:21:03:43 -0700] “GET /SampleApp/sampleapp/gwt/clean/images/hborder.png HTTP/1.1”304 - 127.0.0.1 - - [2013 年 4 月 18 日: 21:03:44 -0700] "POST /SampleApp/sampleapp/greet HTTP/1.1" 500 2773 127.0.0.1 - - [18/Apr/2013:21:03:44 -0700] "GET /SampleApp/sampleapp/gwt /clean/images/circles.png HTTP/1.1" 304 - 127.0.0.1 - - [18/Apr/2013:21:03:44 -0700]"获取 /SampleApp/sampleapp/gwt/clean/images/vborder.png HTTP/1.1" 304 -
localhost.2013-04-18的内容
2013 年 4 月 18 日晚上 8:02:05 org.apache.catalina.core.ApplicationContext 日志信息:ContextListener:contextInitialized() 2013 年 4 月 18 日晚上 8:02:05 org.apache.catalina.core.ApplicationContext 日志信息:SessionListener : contextInitialized() Apr 18, 2013 8:02:05 PM org.apache.catalina.core.ApplicationContext 日志信息: ContextListener: attributeAdded('org.apache.jasper.compiler.TldLocationsCache', 'org.apache.jasper.compiler .TldLocationsCache@dc0435') 2013 年 4 月 18 日晚上 8:02:16 org.apache.catalina.core.ApplicationContext 日志信息:ContextListener: contextInitialized() 2013 年 4 月 18 日晚上 8:02:16 org.apache.catalina.core .ApplicationContext 日志信息:SessionListener:contextInitialized() Apr 18, 2013 8:02:16 PM org.apache.catalina.core.ApplicationContext 日志信息:ContextListener:attributeAdded('org.apache.jasper.compiler.TldLocationsCache', 'org.apache.jasper.compiler.TldLocationsCache@113e9fd') Apr 18, 2013 8:02:16 PM org.apache.catalina.core.ApplicationContext log INFO: SessionListener: contextDestroyed() Apr 18, 2013 8: 02:16 PM org.apache.catalina.core.ApplicationContext 日志信息:ContextListener:contextDestroyed() 2013 年 4 月 18 日 8:29:48 PM org.apache.catalina.core.ApplicationContext 日志信息:SessionListener:contextDestroyed() Apr 18 , 2013 年 8:29:48 PM org.apache.catalina.core.ApplicationContext 日志信息: ContextListener: contextDestroyed() 2013 年 4 月 18 日 8:30:00 PM org.apache.catalina.core.ApplicationContext 日志信息: ContextListener: contextInitialized () 2013 年 4 月 18 日晚上 8:30:00 org.apache.catalina.core.ApplicationContext 日志信息:SessionListener: contextInitialized() 2013 年 4 月 18 日晚上 8:30:00 org.apache.catalina.core。ApplicationContext 日志信息:ContextListener:attributeAdded('org.apache.jasper.compiler.TldLocationsCache', 'org.apache.jasper.compiler.TldLocationsCache@180cb01') 2013 年 4 月 18 日晚上 9:03:36 org.apache.catalina。 core.ApplicationContext 日志信息:SessionListener:contextDestroyed() 2013 年 4 月 18 日 9:03:36 PM org.apache.catalina.core.ApplicationContext 日志信息:ContextListener: contextDestroyed() 2013 年 4 月 18 日 9:03:41 PM apache.catalina.core.ApplicationContext 日志信息:ContextListener:contextInitialized() 2013 年 4 月 18 日晚上 9:03:41 org.apache.catalina.core.ApplicationContext 日志信息:SessionListener:contextInitialized() 2013 年 4 月 18 日 9:03:下午 41 点 org.apache.catalina.core.ApplicationContext 日志信息:ContextListener:attributeAdded('org.apache.jasper.compiler.TldLocationsCache', 'org.apache.jasper.编译器.TldLocationsCache@18600d6')
问候服务.java
package com.sample.client;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
/**
* The client side stub for the RPC service.
*/
@RemoteServiceRelativePath("greet")
public interface GreetingService extends RemoteService {
String greetServer(String name) throws IllegalArgumentException;
}
/WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee">
<!-- Servlets -->
<servlet>
<servlet-name>greetServlet</servlet-name>
<servlet-class>com.sample.server.GreetingServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>greetServlet</servlet-name>
<url-pattern>/sampleapp/greet</url-pattern>
</servlet-mapping>
<!-- Default page to serve -->
<welcome-file-list>
<welcome-file>SampleApp.html</welcome-file>
</welcome-file-list>
</web-app>
通过eclipse生成项目后,我已经更改了注释。
由于我仍在试图弄清楚这一点,它可能与 Java 1.6 和 1.7 SDK 以及 tomcat 与它们交互的方式有关