Je veux déployer automatiquement un fichier EAR construit dans notre serveur d'intégration continue vers un serveur d'applications Websphere. . J'ai cherché la tâche de la fourmi wsdeploy
mais le documentation n'est vraiment pas utile du tout. J'ai ajouté ceci à mon ant script :
Tâche WSDeploy Ant
<classpath>
<fileset dir="${dir.was.plugins}">
<include name="**/*.jar" />
</fileset>
</classpath>
<taskdef name="wsdeploy" classname="com.ibm.websphere.ant.tasks.WSDeploy" />
<target name="deploy">
<wsdeploy inputFile="myearfile.ear"
outputFile="myearfile_fordeployment.ear"
classpath="${classpath}"
debug="true"
ignoreErrors="false"
noValidate="false"
trace="true" />
</target>
Mon problème
Je ne sais pas comment spécifier l'adresse du serveur distant et je serais heureux d'obtenir des liens vers des didacticiels ou peut-être un extrait Ant fonctionnel pour déployer un EAR sur le serveur Websphere.
Nous avons déjà des tâches SCP et SSHEXEC en cours d'exécution pour les portlets, et elles appellent la fonction XMLAccess pour placer et démarrer les portlets. Dois-je adapter ce scripts pour l'EAR aussi ou est-ce une façon complètement erronée de déployer automatiquement un fichier EAR ?
MISE À JOUR 2
J'ai réécrit mon ant script et maintenant il n'y a plus de ClassNotFoundException. Pourtant, il y a un comportement inattendu : Le script veut utiliser un profil que je n'ai jamais spécifié....
Appel à la fourmi :
%WAS_HOME%\bin\ws_ant.bat -Duser.install.root="%WAS_HOME%\profiles\EXPECTEDPROFILE" -f buildall.xml "%1"
Je veux faire fonctionner tout ça avec EXPECTEDPROFILE
mais le message d'erreur qui suit suggère qu'il existe un autre profil. UNEXPECTEDPROFILE
impliqué.
Sortie :
wasListApps:
[wsadmin] WASX7023E: Fehler beim Erstellen der "SOAP"-Verbindung zu "MYHOST". Informationen zur Ausnahme: com.ibm.websphere.management.exception.ConnectorNotAvailableException: com.ibm.websphere.management.exception.ConnectorNotAvailableException: ADMC0016E: Das System kann keinen SOAP-Connector erstellen, um die Verbindung zum Host MYHOST an Port MYPORT herzustellen.
[wsadmin] WASX7213I: Dieser Script-Client ist mit keinem Serverprozess verbunden. Pr?fen Sie, ob in der Protokolldatei /PATH/TO/UNEXPECTEDT/PROFILE/logs\wsadmin.traceout n?here Einzelheiten enthalten sind.
[wsadmin] WASX8011W: Das AdminTask-Objekt ist nicht verfügbar.
[wsadmin] WASX7015E: Beim Ausf?hren des Befehls "$AdminApp list" ist eine Ausnahme eingetreten. Informationen zur Ausnahme:
[wsadmin] com.ibm.ws.scripting.ScriptingException: WASX7206W: Der Application Management Service ist nicht aktiv. Die Befehle f?r die Anwendungsverwaltung k?nnen nicht ausgef?hrt werden.
[wsadmin] Java Result: 103
MISE À JOUR 1
Utilisation de wsinstallapp
Après avoir lu Réponse de JoseKs J'ai essayé d'utiliser wsinstallapp
pour installer mon application avec cette cible Ant :
<taskdef name="wsInstallApp" classname="com.ibm.websphere.ant.tasks.InstallApplication" classpath="${dir.was.plugins}/com.ibm.ws.runtime_6.1.0.jar" />
<target name="deploy" depends="EAR">
<wsInstallApp
wasHome="${WAS_HOME}"
ear="MYAPPLICATION.ear"
options=""
properties=""
profile=""
conntype="SOAP"
host="${TargetServer}"
port="${TargetPort}"
user="${TargetUser}"
password="${TargetPwd}"
failonerror="true" />
</target>
Mais c'est ce que je reçois :
deploy:
[wsInstallApp] Anwendung wird installiert [/path/to/MYAPPLICATION.ear]...
[wsadmin] Exception in thread "main" java.lang.NoClassDefFoundError: org.eclipse.core.launcher.Main
[wsadmin] at com.ibm.wsspi.bootstrap.WSPreLauncher.launchEclipse(WSPreLauncher.java:335)
[wsadmin] at com.ibm.wsspi.bootstrap.WSPreLauncher.main(WSPreLauncher.java:91)
[wsadmin] Caused by: java.lang.ClassNotFoundException: org.eclipse.core.launcher.Main
[wsadmin] at java.net.URLClassLoader.findClass(URLClassLoader.java:496)
[wsadmin] at java.lang.ClassLoader.loadClass(ClassLoader.java:631)
[wsadmin] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
[wsadmin] at java.lang.ClassLoader.loadClass(ClassLoader.java:597)
[wsadmin] ... 2 more
Je ne sais pas pourquoi la tâche cherche une classe Eclipse...