Mi Medio Ambiente: Fedora 8; WAS 6.1 (como instalado con Rational Application Developer 7)
La documentación es muy pobre en esta área y hay pocos ejemplos prácticos.
Uso del servidor WebSphere Application (WAS) tareas Ant
Para ejecutar tal como se describe aquí, tiene que ejecutar desde el directorio bin del servidor perfil utilizando el ws_ant.sh o ws_ant. bat comandos.
<?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>
de comando:
./ws_ant.sh -buildfile ~/IBM/rationalsdp7.0/workspace/mywebappDeploy/applist.xml
Un Script de implementación
<?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>
Notas:
- Sólo se puede ejecutar esta vez! No se puede instalar si el nombre de la aplicación está en uso - vea otras tareas como wsUninstallApp
- Es probable que no se inicie la aplicación, ya sea
- Tiene que ejecutar esto en el servidor y el guión es muy frágil
Alternativas
probablemente me volvería a usar Java Management Extensions (JMX). Podría escribir un servlet de carga de archivos que acepte un EAR y utilice los MBeans de despliegue para implementar el EAR en el servidor. Simplemente enviarías el archivo por HTTP. Esto evitaría cualquier dependencia API WAS en su máquina de desarrollo/desarrollo y podría ser independiente de cualquier proyecto.
Información adicional y muestras aquí: http://illegalargumentexception.blogspot.com/2008/08/ant-automated-deployment-to-websphere.html – McDowell
La WAS JMX despliegue MBeans no puede ser utilizado por una aplicación remota JSE? (asumiendo libs en el classpath, por supuesto) – bluefoot
@bluefoot No sé/recuerdo - escribí esto ~ hace 5 años - pero supongo que necesitaría enviar los bytes al servidor para proporcionar una ruta local a el [AppManagement] (http://pic.dhe.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.javadoc.doc/public_html/mbeandocs/AppManagement.html) MBean de todos modos. – McDowell