Как создать файл EAR из динамического веб-проекта в Eclipse? - PullRequest
14 голосов
/ 07 июня 2011

Я смотрю на развертывание веб-службы, которую я написал в Eclipse, в файл EAR. Я могу экспортировать его как WAR-файл и развернуть его на Tomcat без проблем, но конечный продукт не будет на Tomcat и не будет файлом WAR. Мне нужно будет использовать Websphere в качестве сервера, к которому у меня есть доступ, и я могу развернуть действительные файлы EAR ... если у меня был файл EAR для развертывания.

Короче говоря, как мне экспортировать файл EAR из Dynamic Web Project в Eclipse?

Ответы [ 2 ]

11 голосов
/ 07 июня 2011

В Eclipse необходимо создать проект корпоративного приложения (в основном, EAR), добавить динамический веб-проект в проект EAR, а затем экспортировать все.

1 голос
/ 24 июня 2011

для этого я использую скрипт сборки Ant, (вы можете создать новый файл Ant в Eclipse, сохранить его в корневом каталоге вашего динамического веб-проекта и затем щелкнуть правой кнопкой мыши> запустить его, если вы хотите запустить его из eclipse. ниже. В основном скопируйте вашу войну в каталог, $ {earDir} в сценарии ниже , и создайте его в EAR (EAR - это просто тип JAR):

    <target name="buildEar" depends="init">
    <copy tofile="${earDir}/" file="yourWarFile"/>
    <copy tofile="${earDir}/META-INF/application.xml" file="localDirectory/application.xml"/>
    <copy todir="${earDir}/META-INF">
        <fileset dir="localDirectory" includes="was.policy" />
    </copy>
    <jar jarfile="localDir/something.ear" basedir="${earDir}">
        <!-- Define the properties for the Manifest file. -->
        <manifest>
            <attribute name="Implementation-Vendor"  value="Company name"/>
            <attribute name="Implementation-Title"   value="Application Title"/>
            <attribute name="Implementation-Version" value="version and build number"/>
        </manifest>     
    </jar>
</target>

Ваш файл was.policy будет выглядеть примерно так (нехорошо давать все разрешения, но вы можете изменить его позже, как только он будет запущен и запущен):

    //
// Template policy file for enterprise application.
// Extra permissions can be added if required by the enterprise application.
//
// NOTE: Syntax errors in the policy files will cause the enterprise application FAIL to start.
//       Extreme care should be taken when editing these policy files. It is advised to use
//       the policytool provided by the JDK for editing the policy files
//       (WAS_HOME/java/jre/bin/policytool). 
//

grant codeBase "file:${jars}" {
};

grant codeBase "file:${connectorComponent}" {
};

grant codeBase "file:${webComponent}" {
};

grant codeBase "file:${ejbComponent}" {
};

grant codeBase "file:${application}" {
  permission java.security.AllPermission;
};

Ваш файл application.xml будет выглядеть примерно так:

<?xml version="1.0" encoding="UTF-8"?>
<application id="Application_ID" version="1.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application_1_4.xsd">
    <display-name>yourAppName</display-name>
    <module id="WebModule_1240219352859">
        <web>
            <web-uri>yourWarFile.war</web-uri>
            <context-root>urlToApplication</context-root>
        </web>
    </module>
</application>

Идентификаторы там должны быть в порядке, они должны быть уникальными для каждого EAR, я считаю (или это сервер не может запомнить).

Надеюсь, это поможет.

...