Mon environnement: Fedora 8; WAS 6.1 (installé avec Rational Application Developer 7)
La documentation est très pauvre dans ce domaine et il y a une pénurie d'exemples pratiques.
Utilisation du serveur WAS (WebSphere Application) Tâches Ant
Pour exécuter comme décrit ici, vous devez les exécuter à partir de votre serveur profil bin en utilisant le ws_ant.sh ou ws_ant. bat commandes.
<?xml version="1.0"?>
<project name="project" default="wasListApps" basedir=".">
<description>
Script for listing installed apps.
Example run from:
/opt/IBM/SDP70/runtimes/base_v61/profiles/AppSrv01/bin
</description>
<property name="was_home"
value="/opt/IBM/SDP70/runtimes/base_v61/">
</property>
<path id="was.runtime">
<fileset dir="${was_home}/lib">
<include name="**/*.jar" />
</fileset>
<fileset dir="${was_home}/plugins">
<include name="**/*.jar" />
</fileset>
</path>
<property name="was_cp" value="${toString:was.runtime}"></property>
<property environment="env"></property>
<target name="wasListApps">
<taskdef name="wsListApp"
classname="com.ibm.websphere.ant.tasks.ListApplications"
classpath="${was_cp}">
</taskdef>
<wsListApp wasHome="${was_home}" />
</target>
</project>
commande:
./ws_ant.sh -buildfile ~/IBM/rationalsdp7.0/workspace/mywebappDeploy/applist.xml
Un déploiement Script
<?xml version="1.0"?>
<project name="project" default="default" basedir=".">
<description>
Build/Deploy an EAR to WebSphere Application Server 6.1
</description>
<property name="was_home" value="/opt/IBM/SDP70/runtimes/base_v61/" />
<path id="was.runtime">
<fileset dir="${was_home}/lib">
<include name="**/*.jar" />
</fileset>
<fileset dir="${was_home}/plugins">
<include name="**/*.jar" />
</fileset>
</path>
<property name="was_cp" value="${toString:was.runtime}" />
<property environment="env" />
<property name="ear" value="${env.HOME}/IBM/rationalsdp7.0/workspace/mywebappDeploy/mywebappEAR.ear" />
<target name="default" depends="deployEar">
</target>
<target name="generateWar" depends="compileWarClasses">
<jar destfile="mywebapp.war">
<fileset dir="../mywebapp/WebContent">
</fileset>
</jar>
</target>
<target name="compileWarClasses">
<echo message="was_cp=${was_cp}" />
<javac srcdir="../mywebapp/src" destdir="../mywebapp/WebContent/WEB-INF/classes" classpath="${was_cp}">
</javac>
</target>
<target name="generateEar" depends="generateWar">
<mkdir dir="./earbin/META-INF"/>
<move file="mywebapp.war" todir="./earbin" />
<copy file="../mywebappEAR/META-INF/application.xml" todir="./earbin/META-INF" />
<jar destfile="${ear}">
<fileset dir="./earbin" />
</jar>
</target>
<!-- http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.javadoc.doc/public_html/api/com/ibm/websphere/ant/tasks/package-summary.html -->
<target name="deployEar" depends="generateEar">
<taskdef name="wsInstallApp" classname="com.ibm.websphere.ant.tasks.InstallApplication" classpath="${was_cp}"/>
<wsInstallApp ear="${ear}"
failonerror="true"
debug="true"
taskname=""
washome="${was_home}" />
</target>
</project>
Notes:
- Vous ne pouvez exécuter cette fois! Vous ne pouvez pas installer si le nom de l'application est en cours d'utilisation - voir d'autres tâches comme wsUninstallApp
- Il ne sera probablement pas commencer l'application soit
- Vous devez exécuter sur le serveur et le script est assez fragile
Alternatives
Je probablement utiliser Java Management Extensions (JMX). Vous pouvez écrire une servlet de téléchargement de fichier qui accepte un fichier EAR et utilise les MBeans de déploiement pour déployer le fichier EAR sur le serveur. Vous devez simplement POSTER le fichier sur HTTP. Cela éviterait toute dépendance de l'API WAS sur votre machine de développement/développement et pourrait être indépendant de tout projet.
Extra info & échantillons ici: http://illegalargumentexception.blogspot.com/2008/08/ant-automated-deployment-to-websphere.html – McDowell
Le WAS déploiement JMX Les MBeans ne peuvent pas être utilisés par une application JSE distante? (en supposant libs sur le classpath, bien sûr) – bluefoot
@bluefoot Je ne sais pas/me souviens - j'ai écrit ceci ~ il y a 5 ans - mais je suppose que vous auriez besoin d'obtenir les octets sur le serveur pour fournir un chemin local à le [AppManagement] (http://pic.dhe.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.javadoc.doc/public_html/mbeandocs/AppManagement.html) MBean de toute façon. – McDowell