2013-05-03 111 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