Ответ 1
Вам необходимо создать проект Enterprise Application Project (в основном EAR) в Eclipse, добавить проект Dynamic Web Project в проект EAR, а затем экспортировать все это.
Я ищу развертывание веб-службы, которую я написал в Eclipse, в файл EAR. Я могу экспортировать его в качестве WAR и развернуть его на Tomcat все отлично и dandy, но конечный продукт не будет на Tomcat и не будет файлом WAR. Мне нужно будет использовать Websphere в качестве сервера, к которому у меня есть доступ и могу развернуть действительные файлы EAR... если бы у меня был файл EAR для развертывания.
Короче говоря, как я могу экспортировать файл EAR из динамического веб-проекта в Eclipse?
Вам необходимо создать проект Enterprise Application Project (в основном EAR) в Eclipse, добавить проект Dynamic Web Project в проект EAR, а затем экспортировать все это.
для этого я использую Ant build script (вы можете создать новый файл Ant в Eclipse, сохранить его в своем динамическом веб-проекте, а затем щелкнуть правой кнопкой мыши > запустить его, когда вы хотите запустить это из затмения. Что-то вроде ниже. В основном скопируйте свою войну в каталог ${earDir} в script ниже и создайте ее для 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. Я верю (или это сервер не может помнить).
Надеюсь, это поможет.