Deployment mit der J2EE Deployment API (JSR88)

Boemm

Grünschnabel
Hallo,

ich versuche gerade ein Deployment unter Zuhilfenahme der J2EE Deployment API.
Diese wurde als JSR 88 entworfen und dann in die J2EE-Spezifikation unter obigen Namen übernommen.

Jedenfalls habe ich ein paar wenige Beispiele im Netz gefunden und wollte die gerne auf den JBoss anwenden, allerdings stecke ich jetzt an der Stelle fest, wo ich dem DeploymentFactoryManager eine URI übergeben muss, um von dieser einen DeploymentManager zu beziehen.

Ich finde nirgens einen Hinweis darauf, welche URI ich da beim JBoss verwenden muss bzw. wie diese aufgebaut sein muss (welcher Port, welche Syntax etc.) ...
achja, ich versuche dies mit einem JBoss 4.0.5.

Ich habe momentan dieses Code-Fragment:

Code:
JarFile deploymentJar = new JarFile(new File("lib/jboss-deployment.jar"));
java.util.jar.Manifest manifestFile = deploymentJar.getManifest();
Attributes attributes = manifestFile.getMainAttributes();
String key = "J2EE-DeploymentFactory-Implementation-Class";
String className = attributes.getValue(key);
// className is now org.jboss.deployment.spi.factories.DeploymentFactoryImpl

Class deploymentFactory = Class.forName(className);
DeploymentFactory deploymentFactoryInstance = (DeploymentFactory) deploymentFactory.newInstance();
		
DeploymentFactoryManager dfm = DeploymentFactoryManager.getInstance();
dfm.registerDeploymentFactory(deploymentFactoryInstance);
		
String uri = "localhost:1099";
String username = null;
String password = null;
DeploymentManager dm = null;

// all works fine up to this point
// but here I don't know, what uri I have to use to get the deployment manager ...
try {
	dm = dfm.getDeploymentManager(uri, username, password);
} catch (DeploymentManagerCreationException e) {
	e.printStackTrace();
}

Bis zu dem dfm.getDeploymentManager klappt alles, dann kriege ich immer die Exception:

javax.enterprise.deploy.spi.exceptions.DeploymentManagerCreationException: Could not get DeploymentManager
at javax.enterprise.deploy.shared.factories.DeploymentFactoryManager.getDeploymentManager(DeploymentFactoryManager.java:120)
at prototyp.livedeployment.clients.JSR88Client.main(JSR88Client.java:52)

Kann mir vielleicht irgendwer nen Tip geben, welche URI ich beim JBoss (Standardinstallation auf localhost) nehmen muss oder mir beschreiben, wie die URI aussehen muss, dass eine Verbindung klappt?

Steffen
 
Hi,

soll ich mir diese als Beispiele (im Sourcecode!?) für mein Vorhaben anschauen oder als Ersatz?

Cargo kenne ich, habs mir auch schon angeschaut ...
Cactus habe ich mir noch nicht angeschaut, auf den ersten Blick sieht es aber nach einem Framework aus, um Serverseitige Java-Anwendungen zu testen ... also eher nicht zum Deployment von beliebigen J2EE Komponenten ...

Die J2EE API scheint die universellste Art zu sein, J2EE Komponenten in J2EE 1.4+ Containern zu deployen ... Cargo kann dies bei einer Auswahl von Servern zwar auch schon ... und sogar noch ein bissel mehr, wie es scheint, unterstützt aber bei weitem noch nicht alle J2EE zertifizierten Server ...

Daher wollte ich den Versuch starten, dies mit der J2EE Deployment API zu implementieren ... was ja prinzipiell ohne große Probleme gehen sollte, oder sehe ich das falsch?

Ich hänge im Moment nur an dem Punkt, dass ich den Zugriff auf den DeploymentManager vom JBoss nicht gebacken kriege ...

Gruß
Steffen
 
Hallo,

versuchs mal damit als uri:
"http://org.jboss.deployment/jsr88" oder eine entsprechend mit jnp:// ... beginnende URI zu deinem Server. Beispielsweise:
jnp://localhost:1099

Gruß Tom
 
Hm, leider hat es damit nicht geklappt ...

Habe es mit URI's wie:

http://localhost:1099
jnp://localhost:1099

http://localhost:1099/jsr88
jnp://localhost:1099/jsr88

versucht, oder aber mit sowas (habe ich im Internet im Bezug auf JBoss und die Deployment API gefunden:

http://localhost:1099/jsr88?targetType=remote
jnp://localhost:1099/jsr88?targetType=remote

http://localhost:1099/jsr88?targetType=jmx
jnp://localhost:1099/jsr88?targetType=jmx


Aber alles ohne Erfolg ...
Und gleichbleibend kommt diese Exception, welche absolut null Hinweis auf den Fehler gibt :-( ...
Ich werde morgen noch ein wenig danach googeln, aber mir schwindet langsam die Hoffnung, das hinzukriegen.

Kann es denn sein, dass es für eine J2EE Standard API keine ordentliche Doku oder wenigstens ein paar Beispiele gibt!?

Aber trotzdem Danke für deinen Hilfeversuch :) ...
Falls dir noch was einfällt ... ich wäre dankbar!

Gruß
Steffen
 
Hallo,

hmmm, laut JBoss sourcen sollte das so gehen...
welche Arten von DeploymentFactories bekommst du denn über:
dfm.getDeploymentFactories() zurück?

Hast du das jboss-j2ee.jar und das jboss-jsr88.jar im Classpath?

Gruß Tom
 
Hi,

ich hatte zwar die Bibliotheken nocht nicht im Classpath, habe sie nun aber dazu genommen ... mit dem gleichen Ergebnis ...

Vielleicht versuche ich das mal mit nem Websphere ... von dem habe ich zwar noch keine Ahnung, habe aber ein Beispiel mit Code dafür im Netz gefunden ...

Komisch isses aber schon ... das das nicht geht :-(
 

Neue Beiträge

Zurück