2013-05-03 107 views
0

我已经使用Netbeaans(使用Maven)构建了一个基本的Java Web项目。Java WAR部署问题

问题是,在我的'依赖'中,我看到'javaee-web-api-6.0.jar'。但是,当我构建项目时,在.war文件中,我没有看到这个.jar文件包含在任何地方。

我错过了什么,或者是否有任何额外的步骤,我需要采取所有的依赖包括在.jar中?

回答

1

Servlet API依赖关系应该从不位于生成的war文件中。它是由您的容器提供的依赖项。把它放在war文件中只会导致一堆classloader问题。无论如何,大多数容器都会忽略jar文件,如果它存在于战争中的话。

+0

Tomcat提供的Java EE 6.0也是如此吗? – 2013-05-03 04:41:31

+0

servlet API,是的。 – NilsH 2013-05-03 04:41:53

+0

谢谢。将javaee-web-api-6.0.jar包含在战争的WEB-INF/lib目录中是否有任何缺点? – 2013-05-03 04:43:22

0

javaee-api-6.0.jar and servlet-api-3.jar这些罐子已经由Tomcat提供(假设使用tomact)。要在<TOMCAT_HOME>\lib中验证此外观以查看这些罐子已经存在。

+0

我有Tomcat 7.0并查看它的lib目录,我没有在那里看到'javaee-api-6.0.jar'文件。我确实看到'servlet-api.jar' – 2013-05-03 04:46:02

+0

它基本上是一样的。 – NilsH 2013-05-03 04:46:45

+0

@NilsH不,不是,java EE似乎没有包含在tomcat中,只有servlet似乎是。 – 2013-05-03 04:48:51

1

检查javaee-web-api-6.0.jar依赖项的范围。如果它的提供了那么它将不会被捆绑到战争中。

+0

如果它是“提供”,它将不被捆绑,这是正确的。 – NilsH 2013-05-03 04:52:42

+0

@NilsH对不起,这是我想说的错误。更正了类型。 – 2013-05-03 04:54:33