当前位置: 首页 > 面试题库 >

即使使用新的JAR,也找不到request.getServletContext()

归德厚
2023-03-14
问题内容

我的编译器无法找到 HttpServletRequest getServletContext() 方法。

我没有做任何太复杂的事情:

public static void setMySortedSet(HttpServletRequest request, SortedSet<String> set) 
{
   setMySortedSet(request.getServletContext(), set);
}

我尝试过的一些故障排除:

  • 发现该方法是在2.3中创建的,因此我包含了一个反映该方法的JAR(并将其包含在我的Eclipse构建路径中)
  • 我在 build.xml 类路径中包含了JAR 。

当我使用Eclipse时,可以找到该方法,但是当我尝试构建类时,会看到以下内容:

compile:
[javac] Compiling 1 source files to C:\...\workspace\proj\build\WEB-INF\classes
[javac] C:\...\workspace\proj\src\main\Helper.java:26: cannot find symbol
[javac] symbol  : method getServletContext()
[javac] location: interface javax.servlet.http.HttpServletRequest
[javac]     return getURISet(request.getServletContext());
[javac]                       ^
[javac] Note: C:\...\workspace\proj\src\main\Helper.java uses unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.
[javac] 1 error

关于我可能会缺少的任何想法?感谢您的回应。


问题答案:

根据Javadoc,该ServletRequest#getServletContext()方法是在Servlet
3.0中而不是2.3中引入的。您需要在Eclipse中安装并集成与Servlet 3.0兼容的容器,例如Tomcat
7
,Glassfish 3等,并将“
动态Web项目” 的“ 目标运行时 ” 设置为该容器。如果正确地做到这一点,那么您就不需要手动摆弄构建路径,或者 根本
不需要build.xml,Eclipse会自动为您处理它。您 也不 需要下载其他make /
version的任意servlet容器的松散JAR文件,并将其放入构建路径中。这只会导致将来的类路径和可移植性问题。



 类似资料:
  • https://github.com/thtrieu/darkflow 在Ubuntu 20.04 我认为我的flow文件有问题,所以我试图通过以下代码重建构建文件 这就是我得到的。 设置。py:6:弃用警告:imp模块已弃用,取而代之的是importlib;有关导入imp运行build_ext building“暗流”的替代用途,请参阅模块文档。cython_utils。nms的扩展名x86_6

  • 未能解析配置“:classpath”的所有依赖项。找不到org.jetbrains.kotlin:kotlin-gradle-plugin:1.0.0-release-1038。在以下位置搜索:https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.0.0-release-1038/kotlin-grad

  • 问题内容: 我想用主方法创建一个简单的Java类,但是在编译代码时,出现以下错误消息: 错误:在类error.TestErrors中找不到主方法,请将主方法定义为:public static void main(String [] args) 这是源代码: 为什么我看到此错误,如您所见,我已经声明了main方法! 问题答案: 正如我在评论中所说,您似乎已经在自己的类中声明了一个类。为了证明这一点,

  • 问题内容: 我想在我的小型项目中添加一个测试(请注意,我从代码中删除了一些位并更改了程序包名称,因此,如果您看到与此有关的任何错误,则可能不是;)): (我也尝试从TestCase进行扩展以删除静态导入,但这没有帮助) 运行后,向我显示一个找不到org.junit的错误: 我的pom.xml看起来像这样: mvn依赖项:tree: mvn版本: 请注意,我不是Java专家也不是maven专家,只是

  • 我在kafka connect连接器中安装了运行confluent hub安装的JDBC连接器——没有提示confluent Inc/kafka connect JDBC:10.2.5,但当我尝试使用实现新接收器时,出现以下错误:找不到任何实现连接器且名称与io匹配的类。汇合的。连接jdbc。JdbcSinkConnector 我想用的水槽 我正在使用confluentinc/cp kafka c

  • 我正在使用反射在类中查找方法,并获得注释“Permes siNecessari”,该注释描述了方法实现的操作类型(CREATE,DELETE,...)。 这是一个实现picketlink类PathAuthorzer的授权检查。我得到一个叫做url,我把它拆分,从url中我找到了实现网络服务的类。然后我搜索它将被调用的方法,并阅读它使用的操作类型。 这是搜索方法的一部分: 对于istance,这是选