我已经使用Netbeaans(使用Maven)构建了一个基本的Java Web项目。Java WAR部署问题
问题是,在我的'依赖'中,我看到'javaee-web-api-6.0.jar'。但是,当我构建项目时,在.war文件中,我没有看到这个.jar文件包含在任何地方。
我错过了什么,或者是否有任何额外的步骤,我需要采取所有的依赖包括在.jar中?
我已经使用Netbeaans(使用Maven)构建了一个基本的Java Web项目。Java WAR部署问题
问题是,在我的'依赖'中,我看到'javaee-web-api-6.0.jar'。但是,当我构建项目时,在.war文件中,我没有看到这个.jar文件包含在任何地方。
我错过了什么,或者是否有任何额外的步骤,我需要采取所有的依赖包括在.jar中?
Servlet API依赖关系应该从不位于生成的war文件中。它是由您的容器提供的依赖项。把它放在war文件中只会导致一堆classloader问题。无论如何,大多数容器都会忽略jar文件,如果它存在于战争中的话。
javaee-api-6.0.jar and servlet-api-3.jar
这些罐子已经由Tomcat提供(假设使用tomact)。要在<TOMCAT_HOME>\lib
中验证此外观以查看这些罐子已经存在。
我有Tomcat 7.0并查看它的lib目录,我没有在那里看到'javaee-api-6.0.jar'文件。我确实看到'servlet-api.jar' – 2013-05-03 04:46:02
它基本上是一样的。 – NilsH 2013-05-03 04:46:45
@NilsH不,不是,java EE似乎没有包含在tomcat中,只有servlet似乎是。 – 2013-05-03 04:48:51
检查javaee-web-api-6.0.jar依赖项的范围。如果它的提供了那么它将不会被捆绑到战争中。
如果它是“提供”,它将不被捆绑,这是正确的。 – NilsH 2013-05-03 04:52:42
@NilsH对不起,这是我想说的错误。更正了类型。 – 2013-05-03 04:54:33
Tomcat提供的Java EE 6.0也是如此吗? – 2013-05-03 04:41:31
servlet API,是的。 – NilsH 2013-05-03 04:41:53
谢谢。将javaee-web-api-6.0.jar包含在战争的WEB-INF/lib目录中是否有任何缺点? – 2013-05-03 04:43:22