Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对于Eclipse的maven项目中的HttpServletRequest类型,未定义getServletContext()类型_Java_Eclipse_Maven_Servlets_Servlet Filters - Fatal编程技术网

Java 对于Eclipse的maven项目中的HttpServletRequest类型,未定义getServletContext()类型

Java 对于Eclipse的maven项目中的HttpServletRequest类型,未定义getServletContext()类型,java,eclipse,maven,servlets,servlet-filters,Java,Eclipse,Maven,Servlets,Servlet Filters,我在线上遵循了一个示例,但当我使用某个函数request.getServletContext().getServletRegistrations()时。它无法识别此功能 // Check the target of the request is a servlet? private boolean needJDBC(HttpServletRequest request) { System.out.println("JDBC Filter"); String servletP

我在线上遵循了一个示例,但当我使用某个函数request.getServletContext().getServletRegistrations()时。它无法识别此功能

 //   Check the target of the request is a servlet?
 private boolean needJDBC(HttpServletRequest request) {
   System.out.println("JDBC Filter");

   String servletPath = request.getServletPath();
   // => /abc/mnp
   String pathInfo = request.getPathInfo();

   String urlPattern = servletPath;

   if (pathInfo != null) {
       // => /spath/*
       urlPattern = servletPath + "/*";
   }

   // Key: servletName.
   // Value: ServletRegistration

   Map<String, ? extends ServletRegistration> servletRegistrations = request.getServletContext()
           .getServletRegistrations();

   // Collection of all servlet in your webapp.
   Collection<? extends ServletRegistration> values = servletRegistrations.values();
   for (ServletRegistration sr : values) {
       Collection<String> mappings = sr.getMappings();
       if (mappings.contains(urlPattern)) {
           return true;
       }
   }
   return false;
}
//检查请求的目标是否为servlet?
私有布尔需求JDBC(HttpServletRequest){
System.out.println(“JDBC过滤器”);
字符串servletPath=request.getServletPath();
//=>/abc/mnp
字符串pathInfo=request.getPathInfo();
字符串urlPattern=servletPath;
如果(路径信息!=null){
//=>/spath/*
urlPattern=servletPath+“/*”;
}
//关键字:servletName。
//值:ServletRegistration
Map servletRegistrations=request.getServletContext()
.getServletRegistrations();
//webapp中所有servlet的集合。
收集
com.oracle
ojdbc6
11.2.0.3
朱尼特
朱尼特
3.8.1
测试
org.glassfish.web
javax.servlet.jsp.jstl
1.2.5-b03
javax.servlet.jsp.jstl
javax.servlet.jsp.jstl-api
1.2.1
javax.servlet
javax.servlet-api
3.0.1
假如
埃尔斯项目

任何帮助都将不胜感激。谢谢。

解决方案 替换:

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.0.1</version>
    <scope>provided</scope>
</dependency>

javax.servlet



这些也是glassfish捆绑包,在这个过程中重新打包并制作成osgi捆绑包,这样它们就可以在osgi环境中与jetty一起使用……不过它们应该可以正常工作,我们将它们打包到我们的
jetty7
发行版中。

只需将这个javax.servlet-api保存在pom.xml上,并确保pom.xml位于正确的位置主项目文件夹。键入mvn clean install命令并检查是否成功安装了日志,然后检查您的.m2文件夹是否存在javax.servlet-api jar。如果一切正常,您必须确保maven和eclipse之间存在任何路径冲突。在欢迎使用此代码段的同时检查此答案,并可能提供一些帮助,它是这将是如何解决问题以及为什么解决问题的。请记住,你是在回答未来读者的问题,而不仅仅是现在提问的人!请在回答中添加解释,并说明适用的限制和假设。
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.0.1</version>
    <scope>provided</scope>
</dependency>
</dependency>
    </groupId>`org.mortbay`.jetty</groupId>
    </artifactId>servlet-api</artifactId>
    </version>3.0.20100224</version>
</dependency>