[JBoss] RMI Port nummer opvragen

Pagina: 1
Acties:

  • PhoneTech
  • Registratie: Mei 2000
  • Laatst online: 21-02 14:33
Voor het configureren van de webstart client heb ik een servlet gemaakt die de contenttype application/x-java-jnlp-file heeft.

Deze servlet start de applicatie, en de gebruiker moet nog steeds manueel de RMI server instellen voordat deze gebruikt kan worden.

Omdat het systeem over een paar weken intern in productie gaat, en weet dat users graag niet te veel in willen vullen, wil ik de RMI server instelling automatisch door de servlet laten invullen.

De RMI port nummer staat in een MBean (NamingService) en als ik de API bekijk van Naming Service, dan staat er ook netjes een methode getRmiPort().

Alleen heb ik nog geen manier gevonden om deze informatie uit te lezen in mijn servlet.

Weet iemand hoe ik de rmi port en andere server instelling in een servlet kan opvragen?

  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 07:12

Nick_S

++?????++ Out of Cheese Error

Kun je de NamingService MBean niet ophalen vanuit JNDI en dan daarna daar het poort nummer aan vragen?

Iets als:
code:
1
2
3
Context context = new InitialContext();
NamingServiceMBean namingService = (NamingServiceMBean) context.lookup("NamingService");
namingService.getRmiPort();

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


  • PhoneTech
  • Registratie: Mei 2000
  • Laatst online: 21-02 14:33
Dit heb ik idd geprobeerd. Maar de getRmiPort functie is niet beschikbaar... En als ik de beschrijving van de NamingServiceMBean bekijk, dan komt dar ook geen getRmiPort in voor :S

Ik vertrouw altijd behoorlijk op de intellisense van eclipse, en als ik een instantie van de NamingService maak, dan kan ik daar ook geen getRmiPort van kiezen omdat die simpel wel niet beschikbaar is. Maar als ik de class file bekijk, dan staat ie er wel gewoon bij :S

  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 07:12

Nick_S

++?????++ Out of Cheese Error

Ik kom inderdaad verschillende versies van de NamingService(MBean) tegen. Vergelijk maar eens die van Catalina (Apache Tomcat) met die van JBoss. En laat me raden, je werkt met Tomcat?

[edit]
PhoneTech schreef op dinsdag 09 mei 2006 @ 11:24:
Maar als ik de class file bekijk, dan staat ie er wel gewoon bij :S
En welke modifier (public, protected, private of geen) heeft hij daar?

[ Voor 26% gewijzigd door Nick_S op 09-05-2006 13:34 ]

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


  • PhoneTech
  • Registratie: Mei 2000
  • Laatst online: 21-02 14:33
public modifier. Het is echt een vreemd probleem. Maar als ik de NamingService uit de initial context wil halen en gewoon naar een object cast (om te testen of ie wel opgezicht kan worden) krijg ik de NamingService not bound exception.

Via de JMX console de JNDI lookup tables bekeken, en daar kan ik hem ook niet vinden...

  • PhoneTech
  • Registratie: Mei 2000
  • Laatst online: 21-02 14:33
Toch maart even de oplossing posten ;)

Ik zat me blind te staren op JNDI, maar met een MBean Server kan het ook (waarschijnlijk de einge manier:?)

Java:
1
2
3
4
5
6
MBeanServer beanServer = MBeanServerLocator.locate();
            ObjectName objectName = new ObjectName("jboss:service=Naming");
            NamingServiceMBean namingServiceMBean = (NamingServiceMBean) MBeanServerInvocationHandler
                    .newProxyInstance(beanServer, objectName, NamingServiceMBean.class, false);

            appPort = namingServiceMBean.getPort();
Pagina: 1