我有两个项目 - Project1 和 Project2。 Project1 包含所有 java 类。并且project2包含project1中所需的所有jar文件。意味着,Project1 依赖于 Project1(对于 jar)。
我正在使用 Glassfish 服务器。在创建 Project1 的 war 文件时,我包含了 project2 中的所有 jar 文件。
示例:
Project2 包含 2 个包 - POI 和 Web 服务。
POI包包含:
poi-examples-3.6-20091214.jar、
poi-contrib-3.6-20091214.jar、
poi-ooxml-3.6-20091214 .jar,
poi-ooxml-schemas-3.6-20091214.jar,
poi-scratchpad-3.6-20091214.jar。
web-services 包包含:
javax.servlet-3.0.jar、
javax.servlet-api.jar、
jersey-bundle-1.10。 jar,
jersey-client-1.12.jar,
jersey-core-1.12.jar,
jersey-multipart-1.4.jar。
现在,为了从命令提示符创建 Project1 的 war 文件,我使用了以下命令:
jar cvf Project1.war D:\JavaProject\Project2\lib\external\poi\poi-examples-3.6-20091214.jar D:\JavaProject\Project2\lib\external\poi\poi-contrib-3.6-20091214.jar D:\JavaProject\Project2\lib\external\poi\poi-ooxml-3.6-20091214.jar D:\JavaProject\Project2\lib\external\poi\poi-ooxml-schemas-3.6-20091214.jar D:\JavaProject\Project2\lib\external\poi\poi-scratchpad-3.6-20091214.jar D:\JavaProject\Project2\lib\external\web-services\javax.servlet-3.0.jar D:\JavaProject\Project2\lib\external\web-services\javax.servlet-api.jar D:\JavaProject\Project2\lib\external\web-services\jersey-bundle-1.10.jar D:\JavaProject\Project2\lib\external\web-services\jersey-client-1.12.jar D:\JavaProject\Project2\lib\external\web-services\jersey-core-1.12.jar D:\JavaProject\Project2\lib\external\web-services\jersey-multipart-1.4.jar
在当前目录中创建Project1.war 文件。 但是,当我尝试在 Glassfish 服务器上部署 Project1.war 时,遇到了以下错误:
C:\glassfish3\glassfish\domains\domain1\applications\Project1\D:\JavaProject\Project2\lib\external\poi\poi-contrib-3.6-20091214.jar
(C:\glassfish3\glassfish\domains\domain1\applications\是部署后复制“.war”文件的目录)
我无法理解这个问题。我为创建 war 文件而执行的命令有问题吗?使用命令行提示符创建 war 文件时如何包含外部 jar?
请帮忙..提前致谢!
最佳答案
WAR 文件必须具有特定的文件结构。
/
META-INF/
WEB-INF/
classes/
classes and other classpath resources go here
lib/
jar files go here
web.xml
other webapp stuff; e.g. HTML, JSPs, CSS ...
如果您只是随意将内容放入 JAR 文件中,则当 Web 应用程序容器解压它时,它不会被识别为 Web 应用程序。
关于java - 使用命令提示符创建包含外部 jar 的 war 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16214359/