[jboss-user] [Remoting] - problem wiht Identity object
do-not-reply at jboss.com
Thu Jan 31 20:04:12 EST 2008
Suppose I have a box whose hostname is not resolvable via DNS (I know, I know, but for people demo'ing software on a laptop, we've seen it happen). So, I cannot "ping `hostname`" but I can "ping 127.0.0.1".
Look at NetworkRegistry:
public ObjectName preRegister(MBeanServer mBeanServer, ObjectName objectName) throws Exception
| this.mBeanServer = mBeanServer;
| this.objectName = objectName;
| // make sure our identity system property is properly set
| Identity identity = Identity.get(this.mBeanServer);
Now look at the Identity.get() method it called there:
| return (Identity) identities.get(server);
| String serverid = (String) server.getAttribute(new ObjectName("JMImplementation:type=MBeanServerDelegate"), "MBeanServerId");
| Identity identity = new Identity(InetAddress.getLocalHost(), createId(server), serverid);
| identities.put(server, identity);
| return identity;
It calls InetAddress.getLocalHost() but if that fails (and it will if the local hostname is not resolvable) you can *never* start a NetworkRegistry object.
If there is an exception here in that call to InetAddress.getLocalHost(), it should fallback and use: InetAddress getByName("127.0.0.1").
I tried setting "jboss.identity" sysprop to Identity.createUniqueID() but unfortunately, that sysprop isn't used in this class and NetworkRegistry never looks to see if that is set as a fallback.
I understand that without a resolvable host, it hobbles things - but for demo purposes of software that will ONLY ever run on a single laptop over the loopback network adapter on 127.0.0.1, this should still work without me having to disable things like the NetworkRegistry.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4125344#4125344
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4125344
More information about the jboss-user