On 06/12/17 18:32, Jesse Schulman wrote:
> For some reason there are no Catalina names from that MBean server:
> 
> Registry.getRegistry(null, null).getMBeanServer().getDomains()
> 
> yields
> 
> JMImplementation, java.util.logging, java.lang, Tomcat, com.sun.management,
> null, java.nio
> 
> and
> 
> Registry.getRegistry(null, null).getMBeanServer().queryMBeans(new
> ObjectName("Catalina:*"), null)
> 
> yields an empty set
> 
> Maybe there is something I need to do to enable JMX for the Catalina
> domain?  I didn't do anything to enable it for Tomcat but that domain seems
> to show up already.

The engine name is used as the MBean domain. For embedded, the engine
name is "Tomcat" rather than "Catalina" so you'll want modify the MBean
appropriately.

> Also, if I can get access to the Endpoint MBean will I be able to get
> access to the Endpoint instance to call those two new public methods to
> pass my SSLHostConfig to the add method?

No. You call the operations on the MBean and it takes care of the rest.

Mark


> 
> Thanks!
> Jesse
> 
> 
> On Wed, Dec 6, 2017 at 1:41 AM Mark Thomas <ma...@apache.org> wrote:
> 
>> On 06/12/17 00:17, Jesse Schulman wrote:
>>> Now that 8.5.24 is released with new support for runtime
>> SNI/SSLHostConfig
>>> changes (thank you Mark!) I am trying to access the AbstractEndpoint from
>>> our application to call these 2 new methods:
>>>
>>>     public void addSslHostConfig(SSLHostConfig sslHostConfig, boolean
>>> replace)
>>>
>>>     public SSLHostConfig removeSslHostConfig(String hostName)
>>>
>>> We have an instance of the Tomcat class from which we can do
>>> getConnector(), and that Connector can provide us with the
>>> ProtocolHandler.  With ProtocolHandler we could safely cast to
>>> AbstractProtocol but from there the getEndpoint method is protected.
>>>
>>> Is there a supported way to access the AbstractEndpoint via public
>> methods
>>> if I only have the Tomcat/Connector instances available?
>>>
>>> Or maybe this is possible to do with JMX?  If so I would need access to
>> the
>>> AbstractEndpoint directly so I can pass it my SSLHostConfig objects.
>>
>> The MBean for an Endpoint has a name that looks like this:
>>
>> Catalina:type=ThreadPool,name="http-nio-8080"
>>
>> The name part is the same as that shown in the logs. So if you see this:
>>
>> 06-Dec-2017 09:39:36.986 INFO [main]
>> org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler
>> ["https-jsse-nio-8443"]
>>
>> then the MBean name will be:
>>
>> Catalina:type=ThreadPool,name="https-jsse-nio-8443"
>>
>> The MBean server should be obtainable with:
>> Registry.getRegistry(null, null).getMBeanServer();
>>
>> Mark
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>> For additional commands, e-mail: users-h...@tomcat.apache.org
>>
>>
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to