tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Yogesh Rao <yog...@gmail.com>
Subject Re: Unable to deploy MBeans in Tomcat 7 using Modeler API
Date Wed, 06 Aug 2014 16:04:54 GMT
Hi,

Did some further search on this and came across the API document for
modeler where an excellent HowTo is given...The only code missing further
to what i had written was to bind the MBean with the registry which is done
using below fragment

    URL url= this.getClass().getResource
      ("/com/example/mbean/mbeans-descriptors.xml");
    Registry registry = Registry.getRegistry(null,null);
    registry.loadMetadata(url);


The detailed information with steps can be found @
https://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/tomcat/util/modeler/package-summary.html
(The Registry API needs to be updated in the document as it still
refers to a no arg method)


Now my I am able to register my MBeans and retrieve them.
Programatically i see that the custom MBean is registered with the
PlatformMBeanServer.


However the MBeans still do not show up on JConsole but accessible in
the Registry.. Any ideas why ?

Any pointers would be really helpful.

Thank you!

Regards,

-Yogesh



On Wed, Aug 6, 2014 at 6:19 AM, Yogesh Rao <yogu13@gmail.com> wrote:

> Hi chris,
>
> Thank you for the quick reply. I will certainly look at the link
> mentioned by you... Also let me know if you planning to upload the source
> code anytime soon.
>
> Meanwhile any tomcat developers on the mailing list can help me with this
> ???
>
> I can slso volunteer in contributing to this part of the documentation.
>
> Regards,
> -yogesh
>
> On Wednesday, August 6, 2014, Christopher Schultz <
> chris@christopherschultz.net> wrote:
>
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA256
>>
>> Yogesh,
>>
>> On 8/5/14, 10:18 AM, Yogesh Rao wrote:
>> > I am trying to write a MBean using the Modeler API in tomcat. The
>> > details of my environment are as below:-
>> >
>> > Tomcat version : 7.0.54 JDK version : 1.7 OS : windows 7
>> >
>> > The MBean written using Modeler API is not getting deployed and
>> > hence not showing up on JConsole. Following is the simple MBean
>> > code which has been written with its mbeans-descriptors.xml
>> >
>> > HelloMBean.java -------------------------
>> >
>> > package com.example.mbean;
>> >
>> > public interface HelloMBean {
>> >
>> > void sayHello(); }
>> >
>> >
>> > Hello.java --------------------------- package com.example.mbean;
>> >
>> > import javax.management.MBeanException; import
>> > javax.management.RuntimeOperationsException;
>> >
>> > import org.apache.catalina.mbeans.MBeanUtils; import
>> > org.apache.tomcat.util.modeler.BaseModelMBean; import
>> > org.apache.tomcat.util.modeler.ManagedBean; import
>> > org.apache.tomcat.util.modeler.Registry;
>> >
>> > public class Hello extends BaseModelMBean implements HelloMBean  {
>> >
>> >
>> > protected Registry registry = MBeanUtils.createRegistry();
>> > protected ManagedBean managed =
>> > registry.findManagedBean("Custom");
>> >
>> > protected Hello() throws MBeanException, RuntimeOperationsException
>> > { super(); }
>> >
>> > @Override public void sayHello() {
>> > System.out.println("sayHello()"); }
>> >
>> > }
>> >
>> > mbeans-descriptors.xml ------------------------------ <?xml
>> > version="1.0"?> <mbeans-descriptors> <mbean name="Custom"
>> > className="com.example.mbean.Hello" description="Custom Hello"
>> > domain="Catalina" group="Custom"
>> > type="com.example.mbean.HelloMBean">
>> >
>> > <operation name="sayHello" description="Saying Hello"
>> > impact="ACTION" returnType="void"> </operation> </mbean>
>> > </mbeans-descriptors>
>> >
>> >
>> > All the above files are in the same package and bundled as jar. I
>> > have tried placing this jar in server\lib directory as well as in a
>> > webapp.
>> >
>> > Sadly there is very little documentation on how to go about writing
>> > a MBean using this API.
>> >
>> > Any help on this would be greatly appreciated.
>>
>> I never had any luck getting Tomcat to auto-load my beans: I had to
>> load them myself by manually-registering the bean with the local server.
>>
>> Take a look at my presentation from ApacheCon NA 2014:
>>
>> http://people.apache.org/~schultz/ApacheCon%20NA%202014/Monitoring%20Apache%20Tomcat%20with%20JMX.pdf
>>
>> Check page 28 for a slide containing code where I manually-register
>> the bean. Note that I don't use any Tomcat-specific APIs.
>>
>> I keep forgetting that I never posted the full source code, etc. for
>> my presentation. I really need to do that...
>>
>> - -chris
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG v1
>> Comment: GPGTools - http://gpgtools.org
>> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
>>
>> iQIcBAEBCAAGBQJT4XalAAoJEBzwKT+lPKRYIt0QAKxJ1mt1tkylY9HUkGGKcpaa
>> kHXauvdCtC0RFqG/Gqrm73CO/f1//nrBqMr1n/HU8zK+6a1ygA0+u1tNtiU0nLBl
>> sXop34Ks/3Y1lKc7Nht5GcpB4+0CGTIyXwfHqdCMc9wQLaxpuSoS7VTsOWSpaLSZ
>> PY9IMdiFL0cGv301gsfDI7xn7pGzDSfGvCoakM+tGMMYywTidJNNxR1OyEZ070Wu
>> 2AH3sydY2Xbbc/9Mlx0FRVjz7U+nQw/KDd3RZkyi/3EFCNt6Nh4zOwXQyY6Tm3Ik
>> +Mjff+5t1ggz7UM0sUFvbQqc+HaP7y45UWstWEKMsbHVX/KJIDIeLKJq6A44SV2i
>> og/JLrtOjLneu5D388hfX7CVwXaThXNuDQdyISXBai8i33YXGBwRUS9bLDAXOFRi
>> u1vroin2B2FTVNX1zkQNt+BkkuJCNrRfxmk5FSGsr3bWaNO4udrqqQFeImcj7msg
>> GDzs7vGmI3w599/tudo0o63G2DzquTwrIPq3BtbSGRn/SSYA8uEqJPjnWmpTBXjg
>> IUtMzW0VyFyJIuS9IjzfpwClNm2MOCehLsfZDeozsGDEl+Wku9PUUg1YW9tmbP/I
>> ai6so+eyChdD1XewZNIIbb8P8hSsAs6qfp3zlZrCA4gNkcvAbJahTsz/t3SkoBTn
>> xlY4+lKQnMoXgrzmRRrI
>> =O7gF
>> -----END PGP SIGNATURE-----
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message