部署环境:
http://blog.csdn.net/lego2816/article/details/42650545
参考资料:
http://blog.sina.com.cn/u/1632737354
http://bbs.itheima.com/thread-115511-1-1.html
可能出现的问题:
1.打包成WAR,WEB项目的目录组织:
http://blog.csdn.net/wk843620202/article/details/9179923
http://blog.csdn.net/bluesnail216/article/details/7744607
2. SAE 报错 500,404
注意JRE是1.6版本的,然后不要加乱七八槽的JAR文件。
http://blog.csdn.net/u012510614/article/details/38009763
一、DEMO:(dynamic web project -- eclipse上运行成功,经过改正JRE为1.6版本后再SAE上部署成功。)
HelloWorldServlet
package org.jetty.demo; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; //Servlet public class HelloWorldServlet extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("doGet"); resp.getWriter().write("hello world!"); resp.getWriter().close(); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("doPost"); super.doPost(req, resp); } }
JettyServerStart其实可以不要这个main的,我试过仍旧可以运行。
package org.jetty.demo; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.webapp.WebAppContext; public class JettyServerStart { public static void main(String[] args) throws Exception { Server server = new Server(8081); WebAppContext context = new WebAppContext(); context.setContextPath("/"); server.setHandler(context); server.start(); server.join(); } }
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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <display-name></display-name> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>HelloWorldServlet</servlet-name> <servlet-class>org.jetty.demo.HelloWorldServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorldServlet</servlet-name> <url-pattern>/HelloWorldServlet</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
<%@ page language="java" contentType="text/html; charset=gb2312" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> hello jetty! 中国! </body> </html>
最后运行的时候,路径中记得输入PROJECT的名字 。当初忘记加工程名,看了一个下午。。
二、SAE上部署servlet
把以上工程导出成war格式的,删除其中LIB里包含的所有JAR,以免与SAE冲突。
WEB-INF下:
classes中是WEB PROJECT中的类文件,lib中是需要的一些JAR,在这里我已经把lib中的JAR全部删除了。
上传到自己的JAVA应用中,输入对应的URL即可访问。
启示:
不要害怕失败,成功是必然的,只是时间的问题。
在网上搜寻资料的过程很苦,但是在完成后记得要做一个总结,避免再犯同样的错误。