it-swarm.com.de

Wie kann ich eine EAR-Datei aus einem dynamischen Webprojekt in Eclipse erstellen?

Ich möchte einen Webdienst bereitstellen, den ich in Eclipse in eine EAR-Datei geschrieben habe. Ich kann es als WAR exportieren und auf Tomcat bereitstellen, aber das Endprodukt wird nicht auf Tomcat und keine WAR-Datei sein. Ich muss Websphere als Server verwenden, auf den ich zugreifen und gültige EAR-Dateien bereitstellen kann ... wenn ich eine EAR-Datei bereitstellen müsste.

Wie exportiere ich eine EAR-Datei aus einem dynamischen Webprojekt in Eclipse?

14
ZKSteffel

Sie müssen in Eclipse ein Unternehmensanwendungsprojekt (im Wesentlichen eine EAR) erstellen, das dynamische Webprojekt zum EAR-Projekt hinzufügen und dann das Ganze exportieren.

11
Matt Ball

dazu verwende ich ein Ant-Buildskript (Sie können eine neue Ant-Datei in Eclipse erstellen, in Ihrem dynamischen Webprojektstammverzeichnis speichern und dann mit der rechten Maustaste> Ausführen, wenn Sie sie von Eclipse aus ausführen möchten kopiere deinen Krieg in ein Verzeichnis, $ {earDir} im Skript unten , und baue das zu einem EAR (ein EAR ist nur eine Art 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>

Ihre Datei was.policy wird ungefähr so ​​aussehen (nicht gut, um alle Berechtigungen zu erteilen, aber Sie können sie später ändern, sobald Sie sie installiert haben):

    //
// 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;
};

Ihre application.xml-Datei sieht etwa so aus:

<?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>

Die IDs dort sollten in Ordnung sein, sie müssen eindeutig pro EAR sein, glaube ich (oder ist es ein Server, der sich nicht erinnern kann).

Ich hoffe das hilft.

1
Gurnard