内置Jetty配置JSP支持过程中的常见报错
1. 常见报错及解决
内置jetty,jsp支持报错,基本都是jetty、jsp相关依赖配置问题。下面是几个常见报错的例子:
1.1 JSP support not configured
解决: 检查pom文件是否有相关依赖,如果没有则添加。注意使用9.3.0.M1版本不行。使用release版本可以,如:
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-jsp</artifactId>
<version>9.2.26.v20180806</version>
</dependency>
注意jetty9.2以后使用apache-jsp
1.2 JSTL标签解析
- PWC6188: The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved
解决: taglib加上"_rt"
即
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
更新成:
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt" %>
更新taglib后,问题解决。
1.3 JSP编译
- org.apache.jasper.JasperException: Unable to compile class for JSP
解决:添加WebXmlConfiguration、AnnotationConfiguration
Configuration.ClassList classlist = Configuration.ClassList.setServerDefault(server);
classlist.clear();
classlist.add("org.eclipse.jetty.webapp.WebXmlConfiguration");
classlist.add("org.eclipse.jetty.annotations.AnnotationConfiguration");
server.setHandler(getServletContextHandler());
1.4 JSP实现依赖
- NoClassDefFoundError: org/apache/jasper/runtime/JspSourceImports
解决:jetty9.2之前jsp实现是Glassfish,9.2之后为Apache,对应依赖jetty-jsp更新为apache-jsp。
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>apache-jsp</artifactId>
<version>9.4.10.v20180503</version>
</dependency>
如果jetty-jsp和apache-jsp依赖同时都添加了,则有以下报错:
- org.apache.jasper.JasperException: javax.el.ELException: java.lang.IllegalAccessException
- org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: org.apache.jasper.runtime.TagHandlerPool.get(Ljava/lang/Class;)Ljavax/servlet/jsp/tagext/Tag;
1.5 EL表达式支持
- org.apache.jasper.JasperException: javax.servlet.ServletException: javax.el.ELException: Provider com.sun.el.ExpressionFactoryImpl not found
添加相关依赖即可:
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>el-impl</artifactId>
<version>2.2</version>
</dependency>
备注:javax.el.javax.el-api javax.el-api-3.0.0.jar中无此ExpressionFactoryImpl实现。
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>3.0.0</version>
</dependency>
2. 小结
注意相关版本依赖关系即可。pom相关配置:
<properties>
<jetty.version>9.4.10.v20180503</jetty.version>
</properties>
<!-- web容器- jetty -->
<!-- https://mvnrepository.com/artifact/org.eclipse.jetty.aggregate/jetty-all -->
<dependency>
<groupId>org.eclipse.jetty.aggregate</groupId>
<artifactId>jetty-all</artifactId>
<version>${jetty.version}</version>
<type>pom</type>
</dependency>
<!-- jsp实现-->
<!-- https://mvnrepository.com/artifact/org.eclipse.jetty/apache-jsp -->
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>apache-jsp</artifactId>
<version>${jetty.version}</version>
</dependency>
<!--el表达式-->
<!-- https://mvnrepository.com/artifact/javax.el/el-api -->
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>el-impl</artifactId>
<version>2.2</version>
</dependency>
内置Jetty配置JSP支持过程中的常见报错的更多相关文章
- solr5.5 基于内置jetty配置 Ubuntu
下载地址:http://archive.apache.org/dist/lucene/solr/ 在你的目录下直接解压 tar -zxvf xxxxxx.tgz 现在就可以直接开启solr了bin/s ...
- Web-request内置对象在JSP编程中的应用
- sql中的常见报错;
1.对于某些写的sql懒得判断的: SELECT * FROM sys_part WHERE part_no =(SELECT part_no FROM dbo.sys_part) --字查询的结果 ...
- JSP中的内置标记(JSP动作)和 EL表达式
一.JSP的内置标记(JSP动作) (一)JSP的内置标记都是以<jsp: 开始标记的 一般会用到<jsp:useBean/>,<jsp:setProperty/>,&l ...
- SolrCloud6.3 单机、集群、内置jetty、tomcat搭建、对collection操作
参考:https://my.oschina.net/u/1416405/blog/821187 1.Solr 单机 1.1.Solr下载 1.solr官网:http://lucene.apache.o ...
- webstorm快捷键 webstorm keymap内置快捷键英文翻译、中英对照说明
20160114参考网络上的快捷键,整理自己常用的: 查找/代替shift+shift 快速搜索所有文件,简便ctrl+shift+N 通过文件名快速查找工程内的文件(必记)ctrl+shift+al ...
- C语言开发中常见报错的解决方案
C语言开发中常见报错的解决方案 整理来源于网络,侵权请通知删除.*禁止转载 ---- fatal error C1003: error count exceeds number; stopping c ...
- mac 内置PHP配置多站点
1.修改/private/etc/hosts 文件,建议用编辑器打开 最后一行加入你的网站名称(自定义),参考如下: 127.0.0.1 www.MyObj.com 2.修改/private/et ...
- Android:源码环境下移植第三方的apk内置到ROM(System Image)中
1. 首先在vendor目录下新建一个the3rdapk的目录,将需要内置的apk丢进去,目录名自己随意定. 2. 在 build/target/product/common.mk最后面,在$(cal ...
随机推荐
- docker安装(4)
centos6 docker安装 wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-6.repo yum install -y ...
- [NOIP模拟测试10]辣鸡(ljh) 题解
首先计算块内贡献,很显然是$(x_2-x_1)*(y_2-y_1)*2$. 然后考虑矩形之间的贡献,sort一遍分类讨论$n^2$暴力即可. 注意考虑边界情况是否能多两个,以及角对角的情况. 另外,排 ...
- (转)OpenFire源码学习之十八:IOS离线推送
转:http://blog.csdn.net/huwenfeng_2011/article/details/43458213 IOS离线推送 场景: 如果您有iOS端的APP,在会话聊天的时候,用户登 ...
- python 中的内置高级函数
1.map(function,iterable) map是把迭代对象依次进行函数运算,并返回. 例子: map返回的十分map对象,需要list()函数转化. 2.exec()函数 执行储存在字符串或 ...
- cgroup & oom-killer 简介
cgroup内存限制 memory.failcnt memory.limit_in_bytes memory.usage_in_bytes memory.max_usage_in_bytes memo ...
- 杂项-WebService:WebService
ylbtech-杂项-WebService:WebService Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个 ...
- Django框架(三)—— orm增删改查、Django生命周期
目录 orm增删改查.Django生命周期 一.orm介绍 二.orm增删改字段 三.Django生命周期 orm增删改查.Django生命周期 一.orm介绍 1.什么是orm ORM即Object ...
- CUDA编程入门笔记
1.线程块(block)是独立执行的,在执行的过程中线程块之间互不干扰,因此它们的执行顺序是随机的 2.同一线程块中的线程可以通过访问共享内存(shared memory)或者通过同步函数__sync ...
- cm 安装cdh 后添加hive服务
cm 安装cdh 后添加hive服务,出现错误提示 添加服务时候hive 配置如下: 错误信息提示: 错误日志: xec /opt/cloudera/parcels/CDH-5.4.7-1.cdh5. ...
- 22-7map
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...