Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.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
新构建服务器的POM中必须包含Maven dependency javax.servlet_Java_Maven_Servlets - Fatal编程技术网

新构建服务器的POM中必须包含Maven dependency javax.servlet

新构建服务器的POM中必须包含Maven dependency javax.servlet,java,maven,servlets,Java,Maven,Servlets,我有一个新的nexus服务器和一个新的构建服务器。我将mvn打包一个项目,并在进入测试阶段时出现以下错误: org.mule.api.registry.RegistrationException: Failed to invoke lifecycle phase "initialise" on object: org.mule.config.bootstrap.SimpleRegistryBootstrap@191a01dd (org.mule.api.lifecycle.LifecycleEx

我有一个新的nexus服务器和一个新的构建服务器。我将mvn打包一个项目,并在进入测试阶段时出现以下错误:

org.mule.api.registry.RegistrationException: Failed to invoke lifecycle phase "initialise" on object: org.mule.config.bootstrap.SimpleRegistryBootstrap@191a01dd (org.mule.api.lifecycle.LifecycleException)

Caused by: java.lang.ClassNotFoundException: javax.servlet.http.HttpServletRequest
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 80 more
NOT FOUND
我在解决这个问题时创建了一个裸骨原型pom。这包括javax.servlet,所以我想可能就是它,它似乎解决了这个问题

<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>servlet-api</artifactId>
  <version>${servlet-api-release-version}</version>
  <scope>provided</scope>
</dependency>

javax.servlet
servlet api
${servlet api发布版本}
假如

开放式问题-为什么会这样?

当您编译从
javax.servlet
包导入内容的类时,您需要在类路径上具有这种依赖性

例如,当您拥有
公共类FooServlet扩展HttpServlet
时,Java编译器需要能够获取
javax.servlet.http.HttpServlet
,以检查父类是否为
final
,是否实现了所有抽象方法,等等



javax.servlet
依赖关系然后需要在
pom.xml
中标记为
provided
。这是因为所有servlet容器都已经包含该依赖项。如果未能从WAR中排除此库,则web应用程序中的
HttpServlet
类将与servlet容器使用的
HttpServlet
类不同(即HttpServlet的
FooServlet实例将为false,因为Java中的类不仅由它们的限定名定义,还由它们的类加载器定义)。

开放端在哪里..您关闭了所有...)