It's a lot of lines of code, but not that hard. You haven't mentioned your
Tomcat version, so I'll give a sort of generic setup.
ObjectName loader = getServerLoader(); // depends on the settings and
version
ObjectName registry = getRegistry(); // depends on the settings and
version
MBeanServer server = getTCMBeansServer(); // generally the first one,
unless you (or your J2EE) are playing games
String hname = "Catalina:type=Host,host="+hostName; // Assuming the
default Engine name of "Catalina"
ObjectName ohost = new ObjectName(hname);
Object host = server.instantiate(HOST_CLASS, loader);
server.invoke(registry, "registerComponent",
new Object[] {host, hname, null},
new String[]
{"java.lang.Object","java.lang.String","java.lang.String"});
server.setAttribute(ohost, new Attribute("appBase", appBase));
// Set more attributes, and aliases etc here
// Things like Realms and Contexts work much the same way if you follow
Tomcat's naming conventions
server.invoke(ohost, "start", null, null);
// Start your contexts here, if you don't have automatic deployment set.
As long as you follow Tomcat's naming conventions for ObjectNames, invoking
"start" will automagically add the new elements to where they should live.
You can get the values for the "loader" and "registry" by hooking up a JMX
console to your existing Tomcat.
"Olivier Vergès" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> hi all,
>
> I'm creating a web application for auto deploying virtual host through
> apache and tomcat on a production server.
> Everything is ok except for the Tomcat part:
> As tomcat can't be reloaded and as i can't restart anytime I want, I 've
> heard jmx was great cause it was possible to modify a running tomcat (is
> the
> english expression is "on the fly"?).
>
> So, Connection to Mbean server is ok...
>
> My problem is :
> when i invoke the addChild (org.apache.catalina.core.Container) method of
> Engine I get this error:
> "java.io.NotSerializableException:
> org.apache.catalina.util.LifecycleSupport
> at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
> at
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)..."
>
>
> So i try to create my own addChildByString(String;String,String,String)
> which takes the appabase and the name of th virtual host, and path and
> docBase of the first needed context. But i've got a problem with the
> context
> now,
> " GRAVE: Error getConfigured" (and nothing else)
>
> i'm a little lost with all the classes and functions and I haven't found
> any
> docs about adding vh by jmx.
>
> has anyone tried to add and directly make worked a virtual host and a
> context on a running tomcat ?
>
> thx,
> Olivier
>
---------------------------------------------------------------------
To start a new topic, e-mail: [email protected]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]