HttpServletRequest.getServletContext()一直提示找不到,而引出的问题

2023-10-26

开发j2ee项目的时候,需要用到servlet-api,如果使用了maven,web项目可以在pom.xml中手动加入所需jar包,达到与依赖j2ee libarary同样的功能。可问题来了:

 

1. 问题描述

最近使用myeclipse10.7用maven开发一个web项目,就遇到了这样一个问题:

由于项目的servlet类中使用了servlet-api-3.0相应的方法,即HttpServletRequest类的一个getServletContext()方法,

为了使编译通过,可在build path中添加j2ee6 libarary,或者pom.xml中引入servlet-api-3.0.jar,但虽然通过这2种方法引入使编译成功后,

运行时,servlet中仍然报找不到getServletContext()方法的错误。

2. 分析结果

追查问题后,分析可能的原因是,如果使用的是tomcat6服务器,由于tomcat6安装目录下自带的是servlet-api-2.5.jar,不支持servlet-3.0,

由此进行猜测,web应用在tomcat中运行时,运行时与编译时是不一样的。

编译使用的项目build path引入的jar包进行编译,编译完成后,运行时,tomcat应该是使用了其自带的j2ee jar包来运行web应用的,我们项目build path中引入的j2ee 相关jar包,在tomcat容器运行web项目时,已经不起作用了!

3. 待解决的问题

问题来了,有没有一种方法,使得web项目在tomcat容器中运行时,能够优先使用我们指定的jar包呢?正在百度当中。

4. 分析结果纠正

即使把servlet-api-3.0jar包替换掉tomcat6的lib目录下的servlet-api.jar包,也并不能解决问题,说明了并不是web项目运行时优先加载tomcat自带jar这种原因,而是tomcat6不支持servlet-api-3.0,使用tomcat7后,问题解决了,也说明了这个问题。

注意,如果反过来把servlet-api-2.5替换掉tomcat7目录下的servlet-api包,则容器直接无法成功启动了。

转载于:https://www.cnblogs.com/jianglong-liang/p/4618948.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HttpServletRequest.getServletContext()一直提示找不到,而引出的问题 的相关文章

  • Joda Time 持续时间或间隔中的分钟数

    我有这个简单的代码 DateTime date new DateTime dateValue DateTime currentDate new DateTime System currentTimeMillis System out pri
  • 如何检查给定路径是否可能是另一个路径的子路径?

    我正在尝试使用 java 查找给定路径是否可能是另一个路径的子路径 两条路径可能都不存在 Say c Program Files My Company test My App是一个可能的孩子c Program Files 目前我正在这样做
  • 无法在 Spring boot 中使用 @Valid 验证请求正文

    我想验证我的请求正文 Valid注解 但在 Spring Boot 中不起作用 我在 JAR 文件中有一个 Request 类 无法使用两个字段进行修改 其中一个字段的类型为对象 我的控制器类接受此类对象作为请求主体 当我将下面的 JSON
  • Spring JUnit 测试未加载完整的应用程序上下文

    您好 我正在尝试使用 spring junit 测试用例 并且我需要加载完整的应用程序上下文 然而 junit 测试不会初始化完整的应用程序上下文 测试类 RunWith SpringJUnit4ClassRunner class Spri
  • Linkify 是否适用于 Android 中的 TextView?

    我有这段代码适用于调用 EditText 的方法 我尝试对 TextView 使用相同的代码 但它不起作用 文本不会像 EditText 那样变成超链接 有人知道为什么吗 public class MainActivity extends
  • 何时捕获 java.lang.Error?

    在什么情况下应该抓住java lang Error在申请上 一般来说 永远不会 但是 有时您需要捕获特定的错误 如果您正在编写类似框架的代码 加载第 3 方类 那么最好抓住LinkageError 未找到类定义 链接不满足 类更改不兼容 我
  • 如果从 Java 启动,子进程将忽略 SIGQUIT

    举这个简单的例子 public class Main public static void main String args throws Exception Runtime getRuntime exec sleep 1000 This
  • 我是否应该将 CachingConnectionFactory 与 hornetq 2.4.1 一起使用

    根据有关在 hornetq 中使用 JMSTemplate 的长期信息 我们在连接到服务器时一直使用 CachingConnectionFactory 这是一个示例配置 与我们正在使用的配置非常相似
  • flink - 使用匕首注入 - 不可序列化?

    我使用 Flink 最新通过 git 从 kafka 流式传输到 cassandra 为了简化单元测试 我通过 Dagger 添加依赖注入 ObjectGraph 似乎已正确设置自身 但 内部对象 被 Flink 标记为 不可序列化 如果我
  • 在 LibGDX 中保存和检索图像文件

    如何在 LibGDX 中保存和检索图像文件 我想将图像文件保存在 AndroidApplication 类的本地存储中 并在我的 Core 项目中检索它 Libgdx 中的文件处理在libGDX 维基 https github com li
  • 使用反射检查java中的字段是否为final

    我正在编写一个类 它在某些时候必须拥有它的所有内容Fields 从该类的另一个项目分配 我通过反思做到了 for Field f pg getClass getDeclaredFields f set this f get pg 问题是 这
  • XMLEncoder 和 XStream 的相对优势是什么?

    假设我想用XML存储许多小的配置对象 并且我不太关心格式 这XML解码器 http java sun com j2se 1 5 0 docs api java beans XMLDecoder htmlJDK 中内置的类可以工作 据我所知
  • Java Web 启动和安全性

    刚刚有人向我指出 我的博客中的 Java Web Start 应用程序 例如我的按键绑定 http tips4java wordpress com 2008 10 10 key bindings 条目 由于以下安全错误而不再起作用 经过一些
  • 并发 log4j

    我有自己的日志引擎 它将日志写入带有阻塞队列的单独线程上 为了使用 标准软件 我正在考虑切换到 log4j 我不希望我的高并发软件因日志命令而变慢 这些日志命令在调用命令时将所有内容写入磁盘 log4j 可以用作垃圾箱吗 Log4j 是大多
  • Java 应用程序中 PKIX 路径构建失败

    将应用程序从 Windows 2000 迁移到 Windows 2008 R2 Server 后 我花了将近一周的时间才让我的应用程序正常运行 步骤 安装Java JDK 1 7 0 25 设置系统环境变量JAVA HOME to C Pr
  • 如何重定向到另一个 URI 并访问先前 modelAndView 中的对象

    我有以下代码 我想访问 nextPage jsp 上的 booleanValueObj 这是怎么做到的 该对象并不总是可用于每个请求的 nextPage 方法 因此 requestParam 似乎不合适 RequestMapping met
  • 带有 CompletableFuture 的 MDC 记录器

    我正在使用 MDC Logger 除了一种情况外 它对我来说非常适合 无论我们在代码中的何处使用 CompletableFuture 对于创建的线程 MDC 数据都不会传递到下一个线程 因此日志会失败 例如 在代码中我使用下面的代码片段来创
  • JPA:@JoinColumn 和 @PrimaryKeyJoinColumn 之间的区别?

    两者之间的确切区别是什么 JoinColumn and PrimaryKeyJoinColumn You use JoinColumn对于属于外键一部分的列 典型的列可能如下所示 例如 在具有附加属性的连接表中 ManyToOne Join
  • DynamoDBMappingException:HASH 键没有映射

    编写 DynamoDB Java 应用程序时 如果表及其数据模型配置不正确 则在写入表或从表中检索时 您可能会收到 无 HASH 键映射 错误 完整的异常类似于 com amazonaws services dynamodbv2 datam
  • 在Java中将资源文本文件读取到字符串[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有办法将资源中的文本文件读入字符串 我想这是一个流行的要求 但在谷歌搜索后我找不到任何实用工具 Y

随机推荐

  • 数据结构---插入排序

    插入排序 算法思想 具体流程 JAVA实现 算法时间复杂度为O n2 的排序 冒泡排序 弊端 元素交换次数太多了 选择排序 弊端 当数列包含多个值相等的元素时 选择排序有可能打乱它们原有的顺序 插入排序 算法思想 维护一个有序区 把元素一个
  • spring-session整合redis原理 排查失效原因

    根据网上配置了一个springsession整合redis作为session后 发现session获取失败 redis里面是有值 登录模块设置进去也能获取的到 但是其他的服务就获取不到 记录一下 跟着源码探寻为何失败 auth服务的配置 引
  • Linux下SVN 命令每次都要输入密码

    问题描述 SVN每次操作都需要输入密码 操作相当麻烦 影响效率 解决方法 修改vi subversion config 文件 将password stores的值修改为simple 即 password stores simple auth
  • k8s中文件描述符与线程限制

    背景 linux中为了防止进程恶意使用资源 系统使用ulimit来限制进程的资源使用情况 包括文件描述符 线程数 内存大小等 同样地在容器化场景中 需要限制其系统资源的使用量 限制方法 ulimit docker 默认支持ulimit设置
  • 跑深度学习nvidia驱动忽然失效的详细解决方法

    由于经常跑深度学习 所以对于显卡驱动什么的都还是整的比较明白的不含糊 所以都能跑的起来 但是今天跑pytorch框架时 用到cuda 忽然给我报了个错 RuntimeError No CUDA GPUs are available 这给我整
  • 两个非递减顺序表合并成一个非递减顺序表

    两个非递减顺序表合并成一个非递减顺序表 引入 以下这个例题的描述是关于合并两个有序的数组 然后合并之后同样也是一个非递减的顺序排列 但是我名这里讲的不是顺序表 而是封装成一个顺序表 但是我们这里的顺序表其实底层同样是一个数组 所以解题的思路
  • 脚踏实地《数据结构第二章》第一节:线性表的定义和基本操作

    考点分析 一 线性表的定义 数据结构三要素 逻辑结构 定义 线性表是具有相同数据类型的n n gt 0 个数据元素的有限序列 其中n为表长 当n 0时线性表是一个空表 相同 每个数据元素所占空间一样大 帮助计算机快速找到某一个具体的元素 序
  • Deepin(Linux)下安装tensorflow-gpu(2019-5-28)

    2019 9 7更新 六 6中安装tensorflow gpu不要采用pip install tensorflow gpu 1 9 直接用conda install channel https conda anaconda org anac
  • Spring MVC案例

    文章目录 Spring MVC 基于XML配置与注解的方式使用Spring MVC 一 创建项目SpringMVCDemo01 二 在pom xml中添加依赖 三 添加项目web功能 四 创建登录页面 登录成功页面 登录失败页面 五 创建登
  • 网安之web攻防第三十天

    知识点 1 数据库堆叠注入 根据数据库类型决定是否支持多条语句执行 2 数据库二次注入 应用功能逻辑涉及上导致的先写入后组合的注入 3 数据库Dnslog注入 解决不回显 反向连接 SQL注入 命令执行 SSRF等 4 黑盒模式分析以上 二
  • airpodspro窃听模式_AirPods Pro实时收听怎么关闭? AirPods Pro实时收听的使用方法

    苹果全新AirPods Pro增加了许多新功能 首先 是控制播放 苹果在AirPods Pro中放弃了敲击手势 并用杆上的力传感器取代了它 控制音乐或视频只需要简单的短按即可 一次按压即可播放或暂停当前播放 两次按压将跳至下一曲目 而三次挤
  • 2019-07-11T09:15:41.000+0000类似时间转换

    let a 2019 07 11T09 15 41 000 0000 new Date a
  • (个人)AR电子书系统创新实训第一周(2)

    了解ZXing Net 想要在unity上实现下载资源的功能 我首先需要确认二维码扫描系统在unity上的可行性 如果要自行开发一套二维码扫描系统 不仅需要知道二维码生成和解码的原理 而且应该还需要用到一些图形学相关的代码库 如opencv
  • Android中为layout创建子文件夹

    在开发Android项目的时候 往往都有一大批java文件和layout文件 java文件分类比较简单 直接方法创建文件夹就行 但layout还需要多一步配置 看最后的文件结构图 实现步骤 1 创建相应的文件夹结构 需要注意的是 无论如何
  • ‘float‘ object has no attribute ‘decode‘

    错误代码 weibo df pd read csv Users dl Desktop 情感分析论文 词云图 微博文本数据 原始数据 原数据 表格 微博文本内容 csv print weibo df head 在读取csv或者excel文件时
  • Python基础—文件操作

    Python基础 文件操作 文件操作 文件是指为了重复使用或长期使用的目的 以文本或二进制形式存放于外部存储器 硬盘 U盘 光盘等 中的数据保存形式 文件是信息交换的重要途径 也是利用程序解决实际问题的重要媒介 程序对数据读取和处理都是在内
  • 单片机裸机环境下编写AT指令程序

    1 写在前面 AT指令在各种WIFI模块 2G 4G模块以及一些无线通讯模块中应用广泛 但是用过的朋友都知道 这种方式对于单片机编程来说 并不友好 本篇文章将以ESP8266 WIFI模块为例介绍在单片机裸机环境下编写AT指令程序的一种方式
  • 高精地图在无人驾驶中的应用

    转自 http 36kr com p 5060994 html 编者按 本文来自 程序员 作者 陈辰 刘少山 36氪经授权发布 高精地图是无人驾驶核心技术之一 精准的地图对无人车定位 导航与控制 以及安全至关重要 本文是 无人驾驶技术系列
  • PHP操作Redis LIST ,SET, HASH 的相关命令 (一)

    博客搬家 请访问 PHP操作Redis LIST SET HASH 的相关命令 一 PHP操作Redis KEY String 的相关命令 二 PHP操作Redis 有序集 Sorted Set 的相关命令 三
  • HttpServletRequest.getServletContext()一直提示找不到,而引出的问题

    开发j2ee项目的时候 需要用到servlet api 如果使用了maven web项目可以在pom xml中手动加入所需jar包 达到与依赖j2ee libarary同样的功能 可问题来了 1 问题描述 最近使用myeclipse10 7