Java使用Jetty实现嵌入式Web服务器及Servlet容器
2016-08-04 10:48
831 查看
Jetty是一个Java实现的开源的servlet容器,它既可以像Tomcat一样作为一个完整的Web服务器和Servlet容器,同时也可以嵌入在Java应用程序中,在Java程序中调用Jetty。
下面介绍如何在Java应用程序中嵌入Jetty。
Jetty下载地址,本文写作时的最新版本是9.2.18.v20160721,下载jetty-distribution-9.2.18.v20160721.zip:
https://www.eclipse.org/jetty/download.html
注意Jetty 9需要JDK 7+,如果使用JDK 6的话会出现错误:java.lang.UnsupportedClassVersionError: Unsupported major.minor version 51.0。
在lib文件夹中找到下面五个jar文件:
jetty-server-9.2.18.v20160721.jar
jetty-io-9.2.18.v20160721.jar
jetty-http-9.2.18.v20160721.jar
jetty-util-9.2.18.v20160721.jar
servlet-api-3.1.jar
测试如下:
如果需要支持支持Servlet/JSP,需要
jetty-servlet-9.1.2.v20140210.jar
jetty-webapp-9.1.2.v20140210.jar
jetty-xml-9.1.2.v20140210.jar
jetty-security-9.1.2.v20140210.jar
以及lib/jsp文件夹中的jar包
另外还可以使用war文件:
There
is an error in invoking javac. A full JDK (not just JRE) is required
解决办法:选中自己的项目右击->属性->Java构建路径->Add Library->JRE系统库->已安装JRE->添加(A),只需要将JRE从xxx\Java\jre切换到xxx\Java\jdk\jre路径即可
下面介绍如何在Java应用程序中嵌入Jetty。
Jetty下载地址,本文写作时的最新版本是9.2.18.v20160721,下载jetty-distribution-9.2.18.v20160721.zip:
https://www.eclipse.org/jetty/download.html
注意Jetty 9需要JDK 7+,如果使用JDK 6的话会出现错误:java.lang.UnsupportedClassVersionError: Unsupported major.minor version 51.0。
在lib文件夹中找到下面五个jar文件:
jetty-server-9.2.18.v20160721.jar
jetty-io-9.2.18.v20160721.jar
jetty-http-9.2.18.v20160721.jar
jetty-util-9.2.18.v20160721.jar
servlet-api-3.1.jar
测试如下:
public static void main(String[] args) throws Exception { Server server = new Server(8080); ResourceHandler resourceHandler = new ResourceHandler(); resourceHandler.setResourceBase("D:/test"); server.setHandler(resourceHandler); server.start(); server.join(); }运行Java程序,Jetty服务器启动。此时在浏览器中访问http://localhost:8080就可以浏览D:/test文件夹中的html页面或者其他文件。但是只能访问静态页面,上面的程序无法支持Servlet/JSP。
如果需要支持支持Servlet/JSP,需要
jetty-servlet-9.1.2.v20140210.jar
jetty-webapp-9.1.2.v20140210.jar
jetty-xml-9.1.2.v20140210.jar
jetty-security-9.1.2.v20140210.jar
以及lib/jsp文件夹中的jar包
public static void main(String[] args) throws Exception { Server server = new Server(8080); WebAppContext webapp = new WebAppContext(); webapp.setResourceBase("E:/apache-tomcat-7.0.47/webapps/TVPlay"); server.setHandler(webapp); server.start(); server.join(); }设置一个Java Web应用程序的目录,访问http://localhost:8080,此时已经支持Servlet/JSP。
另外还可以使用war文件:
public static void main(String[] args) throws Exception { Server server = new Server(8080); WebAppContext webapp = new WebAppContext(); webapp.setWar("C:/TVPlay.war"); server.setHandler(webapp); server.start(); server.join(); }注意:在运行时可以会有以下的报错:
There
is an error in invoking javac. A full JDK (not just JRE) is required
解决办法:选中自己的项目右击->属性->Java构建路径->Add Library->JRE系统库->已安装JRE->添加(A),只需要将JRE从xxx\Java\jre切换到xxx\Java\jdk\jre路径即可
相关文章推荐
- SpringMVC上传超过2M文件时不能正常返回异常信息到页面
- JAVA利用cmd命令行调用WINRAR解压及压缩
- JAVA 枚举类型使用(结合案例)
- eclipse安装SVN插件
- Dozer数据对象转换神器
- Mysql主从Java端实现
- struts2国际化
- Java中static的使用
- Java 中的事物
- struts2自定义拦截器
- Java时间戳与日期格式字符串的互转
- 使用Java发送GET、POST请求
- spring-aop
- Spring Boot入门
- springMVC拦截器、json转换器、统一异常处理在配置文件中配置
- spring mvc注解代码实例教程
- Java数字证书对文件/加密/解密/签名/校验签名
- 在普通java类里获取Spring管理的bean
- 【javase复习】## day9 Map接口 ##
- 转 struts2中改变struts.xml默认路径 或可能遇到的问题