文档章节

jetty jsp 404 not found

liuhuics10
 liuhuics10
发布于 2016/03/20 21:33
字数 277
阅读 412
收藏 1

内嵌Jetty服务器,启动后访问jsp页面,显示404 NOT FOUND。

源代码如下:

package soc.main;

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.glassfish.jersey.servlet.ServletContainer;
import org.springframework.web.context.ContextLoaderListener;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;

import soc.config.ApplicationApi;
import soc.config.SpringJavaConfiguration;

public class SocMain {
	public static void main(String[] args) throws Exception {

		ApplicationApi applicationConfig = new ApplicationApi();
		ServletContainer servletContainer = new ServletContainer(applicationConfig);
		ServletHolder jerseyServlet = new ServletHolder(servletContainer);
		ServletContextHandler context = new ServletContextHandler();访问jsp会404
		

		context.setClassLoader(Thread.currentThread().getContextClassLoader());
		context.addServlet(jerseyServlet, "/rest/*");

		context.setContextPath("/");
		context.setResourceBase("src/main/webapp");
		context.addEventListener(new ContextLoaderListener());
		// context.addEventListener(new RequestContextListener());

		context.setInitParameter("contextClass", AnnotationConfigWebApplicationContext.class.getName());
		context.setInitParameter("contextConfigLocation", SpringJavaConfiguration.class.getName());
		int port = 8080;
		if (args.length == 1) {
			port = Integer.parseInt(args[0]);
		}
		Server server = new Server(port);
		server.setHandler(context);
		try {
			server.start();
			server.join();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

出现这一问题的原因是:context要使用Jetty-webapp 包下的WebAppContext,使用jetty-servlet 包下的ServletContextHandler则会导致访问jsp页面not found。修改后的代码如下:

package soc.main;

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.webapp.WebAppContext;
import org.glassfish.jersey.servlet.ServletContainer;
import org.springframework.web.context.ContextLoaderListener;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;

import soc.config.ApplicationApi;
import soc.config.SpringJavaConfiguration;

public class SocMain {
	public static void main(String[] args) throws Exception {

		ApplicationApi applicationConfig = new ApplicationApi();
		ServletContainer servletContainer = new ServletContainer(applicationConfig);
		ServletHolder jerseyServlet = new ServletHolder(servletContainer);
		// ServletContextHandler context = new ServletContextHandler();
		// 访问jsp会404Not Found

		WebAppContext context = new WebAppContext();

		context.setClassLoader(Thread.currentThread().getContextClassLoader());
		context.addServlet(jerseyServlet, "/rest/*");

		context.setContextPath("/");
		context.setResourceBase("src/main/webapp");
		context.addEventListener(new ContextLoaderListener());
		// context.addEventListener(new RequestContextListener());

		context.setInitParameter("contextClass", AnnotationConfigWebApplicationContext.class.getName());
		context.setInitParameter("contextConfigLocation", SpringJavaConfiguration.class.getName());
		int port = 8080;
		if (args.length == 1) {
			port = Integer.parseInt(args[0]);
		}
		Server server = new Server(port);
		server.setHandler(context);
		try {
			server.start();
			server.join();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}


© 著作权归作者所有

liuhuics10
粉丝 4
博文 97
码字总数 39010
作品 0
烟台
私信 提问
tomcat启动访问不到controller中的方法

eclipse开发的java项目,在本地eclipse上用jetty可以正常使用。然后发布到tomcat上,只能访问项目的静态资源,但是动态地址,controller中的方法就访问不了,一直404.不知是什么原因?web.x...

安静的敲代码
2016/04/15
1K
2
在 Jetty 7 中启用 JSP 支持功能

Jetty 转到 Eclipse 下麻烦就来了,一个堂堂的 Java 应用服务器居然默认不支持 JSP 。 还需要以下几个麻烦的步骤才行: 1. 下载 Jetty 6 的压缩包 2. 将 Jetty 6 下的 jsp 2.1 目录下的文件复...

红薯
2010/04/25
5.1K
3
spring mvc 中如何访问到静态的文件,如jpg js css

如何你的DispatcherServlet拦截".do"这样的有后缀的URL,就不存在访问不到静态资源的问题。 如果你的DispatcherServlet拦截"/",为了实现REST风格,拦截了所有的请求,那么同时对.js,.jpg等静...

随智阔
2014/03/11
312
0
JETTY嵌入式Web容器的开发(一)---基础开发

qiuJETTY嵌入式Web容器的开发(一)---基础开发 JETTY嵌入式Web容器体积小,启动速度快,性能好,免费开源,是一款很适合开发调试和简单演示的轻量级Web容器. 而且它的嵌入式的特点,使得开发者可以...

小工匠go
2013/08/26
726
0
maven-jetty-plugin插件的配置

Xml代码 <build> <finalName>rop-sample</finalName> <plugins> <!-- jetty插件 --> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>maven-jetty-plugin</artifactId> <version......

stamen
2015/08/21
125
0

没有更多内容

加载失败,请刷新页面

加载更多

DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
今天
3
0
数据库中间件MyCat

什么是MyCat? 查看官网的介绍是这样说的 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵...

沉浮_
今天
4
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
今天
6
0
常用物流快递单号查询接口种类及对接方法

目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是...

程序的小猿
今天
6
0
Python机器学习之数据探索可视化库yellowbrick

背景介绍 从学sklearn时,除了算法的坎要过,还得学习matplotlib可视化,对我的实践应用而言,可视化更重要一些,然而matplotlib的易用性和美观性确实不敢恭维。陆续使用过plotly、seaborn,...

yeayee
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部