Siz blogja

Még nem tudom, hogy miről fog szólni a blogom. Majd menet közben kiderül és jól ápdételem ezt itt. Valszeg a számomra fontos dolgokat fogom itt közzétenni. Pl. mi öröm/szívás/egyéb történt éppen velem. Hogy mennyire lesz aktív még nem tudom, majd kiderül. :)

Utolsó kommentek

  • siz: Szerintem egy ilyenem nekem is van valahol, de az valami házilag utángyártott csoda, háza sincs, m... (2012.08.13. 21:37) EPROM írás
  • siz: Az EPROM törlő akkor került 3488Ft-omba, amikor ezt a posztot írtam. (Fixáras volt, 7$+10$ posta).... (2012.08.13. 21:35) EPROM írás
  • leonsio: Vettem én is egy eprom égetőt, de ezzel így nem sokra megyek. kepfeltoltes.hu/120812/c64eprom_www... (2012.08.12. 17:56) EPROM írás
  • ColT: Grat! Rég láttam ilyet, anno 80-as években igen gyakran írt apám eprom-ot, na persze nem saját cuc... (2011.03.02. 12:06) EPROM írás
  • Gozo67: Jobbulást Nikinek! (2011.02.05. 17:48) Niki térde
  • Utolsó 20

Címkék

3com (1) amiga (3) amiga 1200 (1) amiga 600 (3) apeh (1) atari (1) autó (7) baleset (1) bank (1) beleönt (1) benzinkutas lehúzós (1) beteg (1) bicikli (1) billentyűzet (1) black screen of death (1) blog (4) bmw (1) bölcsességfog (1) britney spears (1) búcsú (1) bug (3) bugzilla (1) busz (1) c128 (1) canon mx350 (2) canon powershot s2 (3) carbonex kc (6) castle (1) cd galaxis (1) chambery (1) commodore (9) család (1) danubius rádió (1) debian (2) digikábel (4) dragon age origins (3) dvd (1) ea (1) eclipse (3) edigital (2) eprom (1) ethernet (1) fejlesztés (1) fényképező (3) fiesta (2) film (1) firefly (1) firefox (1) focus (40) formula 1 (9) fotó (1) game (1) gmail (1) grundfos kupa (1) győri audi eto (3) heroes (2) hiba (10) hitel (2) (4) htc p3600 (2) hűtőgép (1) ie8 (1) igo (1) internet (2) izzócsere (2) játék (2) java (8) javítás (2) karvina (1) katy perry (1) kép (1) kézilabda (10) kimi (3) kórház (1) közlekedés (6) laptop (2) lara (1) lassított felvétel (1) lemgo (1) letöltés (4) liferay (2) linux (1) lol (23) lovegun (3) lucky (12) lúzer vagyok (1) m1 (1) magyar válogatott (1) meglepetés (1) megoldás (2) mkb veszprém (1) mobil (11) motor (8) mozi (1) nathan fillion (1) niki (6) női (1) nokia 5800 (9) nyaralás (2) osram (1) ovi maps (1) pannon kupa (1) pc (5) pcmcia (1) pick szeged (3) plus4 (1) quake live (1) ram (1) serenity (1) silkeborg (1) sláger rádió (1) sorozat (2) space cowboy (1) spring (1) steam (1) stílus (1) subversion (2) support (1) szakdolgozat (4) sze (22) szép nap (1) szívás (29) tanusítvány (1) taxi (1) template (2) totalcar (1) trinity (1) tűz (1) twitter (1) ubuntu (1) vanda (9) vásárlás (1) video (6) vista (1) víz (1) webes (1) windows (1) wm6 (1) wow (1) xircom (1) zaton (1) zene (2) Címkefelhő

Telepített webalkalmazások lekérdezése JBoss alatt

2009.11.18. 13:54 | siz | Szólj hozzá!

Múlt héten belefutottam egy olyan problémába, hogy szükségem lett volna egy file-t elérni a telepített web-alkalmazás könyvtárából, de nem tudtam. Alapvetően ez nem olyan nagy probléma, a http request-ből el lehet érni a session objektumot és abból pedig getRealPath(útvonal) metódushívással visszakapjuk a fájlrendszerbeli abszolút útvonalat. Viszont nekem ezt egy időzítő (org.jboss.varia.scheduler.Schedulable) objektumból kellett megtennem, ahol nincs http kérés.

Az útvonalat konstansba nem tehettem, mert egrészt minden gépen (sajátom, tesztgép, éles) máshol van maga a JBoss is, másrészt mindig változó nevű ideiglenes könyvtárba csomagolja ki az alkalmazást.

A ClassLoader megint nem megoldás, mert nem az osztályok útvonalán volt a fájl, ami nekem kell és nagyon sok része az alkalmazásnak ott keresi.

A megoldást végül tegnap délután, 3 nap szívás küzdelem után találtam meg. Itt volt egy utalás rá, hogy JMX-el el lehet érni a JBoss deployer szolgáltatását. Már csak ki kellett találni, hogy ez hogyan használható. Természetesen senkit sem találtam, aki már csinált volna ilyet. Végül a JBoss forrásaiban találtam mintát. Ez lett a végleges megoldás:

/**
 * File: Test.java
 * Project: proba
 * Package:
 *
 * (c) Test - 2009.11.18.
 */

import java.util.Collection;

import javax.management.MBeanServer;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jboss.deployment.MainDeployerMBean;
import org.jboss.deployment.SerializableDeploymentInfo;
import org.jboss.mx.util.MBeanProxyExt;
import org.jboss.mx.util.MBeanServerLocator;

/**
 * Get deployment path of a web application on JBoss AS
 *
 * @author siz
 *
 */
public class Test {

    private static final String MAIN_DEPLOYER_SERVICE_NAME = "jboss.system:service=MainDeployer";
    private static final String WAR_NAME = "testWar.war";

    private static final Log log = LogFactory.getLog(Test.class);

    private String deploymentPath = null;

    @SuppressWarnings("unchecked")
    public Test() {
        // Get the MBean server
        MBeanServer server = MBeanServerLocator.locateJBoss();
        try {
            // Object name to be accessed
            ObjectName on = new ObjectName(MAIN_DEPLOYER_SERVICE_NAME);
            // Proxy for the deployer MBean
            MainDeployerMBean proxy = (MainDeployerMBean) MBeanProxyExt.create(
                    MainDeployerMBean.class, on, server);
            // List deployed modules
            Collection deployments = proxy.listDeployedModules();
            // Search modules for our one
            for (Object deployment : deployments) {
                if (deployment instanceof SerializableDeploymentInfo) {
                    SerializableDeploymentInfo info = (SerializableDeploymentInfo) deployment;
                    // Analyze deployment information
                    if (info.shortName.equals(WAR_NAME)) {
                        log.debug("Found our webapp: " + info.shortName);
                        deploymentPath = info.localUrl.getPath() + ".";
                        log.debug("Deployment path: " + deploymentPath);
                    }
                }
            }
        } catch (MalformedObjectNameException e) {
            log.error("Error retrieving WAR info: ", e);
        } catch (NullPointerException e) {
            log.error("Error retrieving WAR info: ", e);
        }
    }
}

Remélem valakinek egyszer még jól jön...

Címkék: java

A bejegyzés trackback címe:

https://siz512.blog.hu/api/trackback/id/tr351534244

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.