java - 使用命令提示符创建包含外部 jar 的 war 文件

标签 java glassfish-3

我有两个项目 - 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/

相关文章:

java - Glassfish 3 : Why do I have to deploy all my libraries into domains/lib/to get it to work?

java - 使用 glassfish 服务器的 JMS 客户端

java - 硬币变化递归所有解决方案到不同的解决方案

java - Spring Boot,JaxB 的 ClassNotDef 错误,包 -Info.java

Java - 两个 repaint() 函数 - 第一个不会立即重绘

java - 构造函数不能应用于给定类型?

java - 什么 API 可以使用 Java 将复选框添加到 MS Word 文件?

java - 用@Inject 加载的类可以使用@EJB 吗?

GlassFish:如何设置 Access-Control-Allow-Origin header

java - Glassfish - 从 32 位到 64 位操作系统的 Java EE 应用程序,不完整的数据库查询?