2013-04-25 4 views
0

У меня есть два проекта - Project1 и Project2. Project1 содержит все классы java. И project2 содержит все файлы jar, необходимые в project1. Средства Project1 зависят от Project1 (для банок).Создайте файл войны, включая внешние баночки, с помощью командной строки

Я использую сервер Glassfish. При создании военного файла Project1 я включил все файлы jar из project2.

Пример:
Проект2 conatins 2 упаковки - POI и веб-сервисов.
POI пакет содержит:
пои-примеры-3.6-20091214.jar,
пои-вно-3.6-20091214.jar,
пои-OOXML-3.6-20091214.jar,
пои-OOXML-схемы-3.6- 20091214.jar,
poi-scratchpad-3.6-20091214.jar.

веб-пакет услуг включает в себя:
javax.servlet-3.0.jar,
javax.servlet-api.jar,
Джерси-пачке 1.10.jar,
Джерси-клиент-1.12.jar,
трикотаж -core-1.12.jar,
jersey-multipart-1.4.jar.

Теперь для создания файла для войны Проект1 из командной строки, я использовал следующую команду:

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 файл, созданный в текущем каталоге. Но, когда я попытался развернуть Project1.war на Glassfish сервера, я столкнулся с этой ошибкой:

C:\glassfish3\glassfish\domains\domain1\applications\Project1\D:\JavaProject\Project2\lib\external\poi\poi-contrib-3.6-20091214.jar 

(C: \ glassfish3 \ GlassFish \ домены \ domain1 \ приложение \ является каталогом, в котором».war 'файлы копируются после развертывания)

Я не мог понять проблему. Что-то не так с командой, которую я выполнил для создания военного файла? Как внешние банки включены при создании военного файла с помощью командной строки?

Пожалуйста, помогите .. Заранее благодарим!

+0

Что будет с этой командой java? –

+0

@Baadshah: команда создаст файл войны, который может быть развернут на сервере Glassfish. – prachi

+0

... и сделает это ненадлежащим образом, как вы находите – hd1

ответ

0

Вы должны использовать WAR exploded layout, другими словами, project2 должен быть включен в $ PROJECT1_DEPLOYMENT_DIR/WEB-INF/lib и так далее. Затем ваша команда jar приведет к развертыванию файла в Glassfish или в любом другом контейнере сервлетов.

+0

Не могли бы вы рассказать? Я уже включил весь файл jar в CLASSPATH. Это то, что вы имели ввиду? – prachi

1

Файл 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 файл в произвольном порядке, не будет узнаваем как веб-приложение, когда он распаковал контейнером WebAPP.