Mit Ant bereitstellen OHR zu remote-websphere application server

Ich möchte zum automatischen bereitstellen einer EAR-Datei zu bauen, die in unseren continuous integration server in einem websphere application server. Ich blickte auf den Ant-task wsdeploy, aber die Dokumentation ist wirklich nicht hilfreich bei allen. Ich habe dies nur Hinzugefügt, um mein ant-Skript:

WSDeploy Ant-task

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

Mein Problem

Ich weiß nicht, wie Sie angeben, die der remote-server-Adresse und ich wäre froh um ein paar links zu tutorials oder vielleicht eine funktionierende Ameise snippet bereitstellen einer EAR auf dem websphere-server.

Wir haben bereits einige SCP und SSHEXEC Aufgaben ausführen für die portlets, und Sie rufen die XMLAccess - Schnittstelle an Ort und Stelle und starten Sie die portlets. Muss ich anpassen, dass Skripte, die für das OHR zu oder ist das ein völlig falscher Weg, um automatisch bereitstellen einer EAR-Datei?


UPDATE 2

Schrieb ich mein ant-Skript und jetzt gibt es keine ClassNotFoundException mehr. Immer noch, es ist ein unerwartetes Verhalten: Das script nutzen möchte, ein Profil, die ich nie angegeben...

Aufruf von Ant:

%WAS_HOME%\bin\ws_ant.bat -Duser.install.root="%WAS_HOME%\profiles\EXPECTEDPROFILE" -f buildall.xml "%1"

Ich will laufen alle mit dieser EXPECTEDPROFILE, aber die Fehlermeldung, folgenden suggeriert, dass es ein anderes Profil UNEXPECTEDPROFILE beteiligt.

Ausgabe:

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

UPDATE 1

Mit wsinstallapp

Nach der Lektüre JoseKs Antwort ich habe wsinstallapp zu installieren, meine Anwendung mit dieser Ant-target:

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

Aber das ist, was ich bekomme:

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

Ich weiß nicht, warum die Aufgabe ist auf der Suche nach einer Eclipse-Klasse...

  • Haben Sie jemals bekommen, um diese arbeiten?
  • Nein, eigentlich sind wir mit einem mix von Ameise (kopiert das OHR mit einem SCP-task) und ein jython Skript, das läuft auf dem server-Rechner. Jython ist geladen von wsadmin und dort installieren wir die server-lokalen-EAR-Datei auf dem Knoten/server.
  • Und Sie müssen manuell das script ausführen, nachdem die SCP-task oder die build-server auf einer Maschine mit WAR? Ich finde es lächerlich, dass wir nicht tun können automatisierte Bereitstellung von einem build-server.
  • Nein, wir scp das OHR Artefakt und den jython-script auf dem server WAR und wsadmin ausführen von dort. In der Tat, die jython-Skript ist auf der Grundlage der Beispiele aus dem ibm.com/developerworks/websphere/library/samples/...
  • Diese Ausnahme ist aufgrund von fehlenden 2 jar Dateien in den classpath. <WAR INSTALLIEREN>/deploytool/itp/batch2.jar & <WAR INSTALLIEREN>/deploytool/itp/batchboot.jar
InformationsquelleAutor cringe | 2010-06-25
Schreibe einen Kommentar