tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
693
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    mgraessle mgraessle ist offline Grünschnabel
    Registriert seit
    Oct 2009
    Ort
    Mannheim
    Beiträge
    3
    Hallo zusammen,

    ich nutze den JBoss 4.2.3 EA. Nun versuche ich gerade, die JMX-Konsole abzusichern. Dazu verwende ich eine Klasse, die in einem ear-File (test_0.ear') zu finden ist. In der Konfigurationsdatei der JMX-Konsole jboss-web.xml versuche ich nun etwas zu sagen wie:

    <depends>jboss.j2ee:service=EARDeployment,url='test_0.ear'</depends>

    Klappt soweit wunderbar. Problem ist nun, dass das ear-File bei jedem Buildvorgang eine neue Versionsnummer angehängt bekommt (test_1.ear, test_2.ear...)
    Und nun versuche ich vergebens, die depends-Einstellung etwas flexibler zu machen, so in der Art
    <depends>jboss.j2ee:service=EARDeployment,url='test_*.ear'</depends>
    Klappt aber nicht, da Dateien mit Wildcard von dem JBoss-Filtermechanismus ignoriert werden - was ich auch nicht verändern will.
    Auch die Möglichkeit, ein Verzeichnis statt einer Datei anzugeben, führt nicht zum Ziel. Statt dessen kommt folgende Fehlermeldung:

    --- MBeans waiting for other MBeans ---
    ObjectName: jboss.web.deployment:war=jmx-console.war,id=-8335029
    State: NOTYETINSTALLED
    I Depend On:
    jboss.j2ee:service=EARDeployment,url='${jboss.server.home.dir)/deploy/test_0.ear'

    --- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
    ObjectName: jboss.j2ee:service=EARDeployment,url='${jboss.server.home.dir)/deploy/test_0.ear'
    State: NOTYETINSTALLED
    Depends On Me:
    jboss.web.deployment:war=jmx-console.war,id=-8335029

    Das liegt aber scheinbar nicht an einem falschen Verzeichnispfad.
    Naja, wie auch immer. Ich komme hier nicht weiter. Vielleicht kann mir ja jemand helfen?
    Danke und Gruss
    Martin
     

  2. #2
    mgraessle mgraessle ist offline Grünschnabel
    Registriert seit
    Oct 2009
    Ort
    Mannheim
    Beiträge
    3
    Hmm,

    wenn ich versuche mit Wildcars zu arbeiten

    Code :
    1
    
    <depends>jboss.j2ee:service=EARDeployment,url="test*"</depends>

    bekomme ich folgende Fehlermeldung:

    Code :
    1
    2
    3
    4
    
    java.lang.Error: Invalid ObjectName: jboss.j2ee:service=EARDeployment,url="test*", javax.management.MalformedObjectNameException: Invalid character '*' in value part of property
        at org.jboss.mx.util.ObjectNameFactory.create(ObjectNameFactory.java:52)
        at org.jboss.metadata.WebMetaData.importJBossWebXml(WebMetaData.java:1261)
        at org.jboss.metadata.WebMetaData.importXml(WebMetaData.java:851)

    Ich verstehe nicht, woran das liegt, denn Wildcards sind wohl prinzipiell erlaubt - laut Java-API.
     

  3. #3
    THMD THMD ist offline Mitglied Gold
    Registriert seit
    Sep 2005
    Beiträge
    122
    Hallo,
    Zitat Zitat von mgraessle Beitrag anzeigen
    ...
    Ich verstehe nicht, woran das liegt, denn Wildcards sind wohl prinzipiell erlaubt - laut Java-API...
    stimmt, nur hast du dann keinen Namen für ein einzelnes Objekt sondern ein Pattern und das definiert mehrere Objekte. <depends> referenziert aber einen einzelnen Service - für mehrere gibt es <depends-list>, wobei dir das für dein Problem nicht weiterhelfen wird.

    Was ich etwas seltsam finde ist deine Vorgehensweise. Dein Buildprozess generiert Filenamen mit Versionsnummern - schön. Aber wenn du so ein Ding deployst, muss doch das "alte" ear gelöscht werden und das neue ear in den Deploymentordner verschoben werden. Wäre es nicht einfacher da einzugreifen und das File mit einem gleichbleibenden Namen zu versehen

    Gruß
    THMD
     
    If Java had true garbage collection, most programs would delete themselves upon execution. (Robert Sewell)

  4. #4
    mgraessle mgraessle ist offline Grünschnabel
    Registriert seit
    Oct 2009
    Ort
    Mannheim
    Beiträge
    3
    Ich habe eine mögliche Lösung gefunden:

    Code :
    1
    
    <depends>jboss.j2ee:service=EARDeployment,url='${myEarName}'</depends>

    Diese Variable kann man den Aufrufparametern oder sogar direkt im run-Script hinterlegen.
    Im run-Script habe ich jetzt eine kleine Funktion, die mir den Names des ear-Files ermittelt, und den Namen der Variablen zuweist.
    Danke für Hilfe und Denkanstöße.
     

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 26.07.09, 18:53
  2. Generierter html code
    Von hispeedsurfer im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 0
    Letzter Beitrag: 10.06.08, 03:53
  3. Vom Designer generierter Code
    Von headpainter im Forum .NET Windows Forms
    Antworten: 1
    Letzter Beitrag: 18.01.08, 10:38
  4. Antworten: 6
    Letzter Beitrag: 08.09.07, 13:49
  5. Antworten: 4
    Letzter Beitrag: 16.05.07, 13:14

Stichworte