geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aaron Mulder" <ammul...@alumni.princeton.edu>
Subject Re: Update: EJB Server Portlet
Date Fri, 21 Jul 2006 12:00:15 GMT
On 7/21/06, Chris Cardona <java_man2k@yahoo.com> wrote:
> A few months ago I submitted a patch to add EJB Server
> portlet in the Console -
> http://issues.apache.org/jira/browse/GERONIMO-1701.
> The patch worked on G 1.0 source and I was hoping I
> can get some feedback on my design and implementation
> so I can make it better. Anyway, I'm working on
> updating the patch to work on G 1.1.0 / 1.1.1 / 1.2
> sources and I have a couple of questions:

Sounds good!

> 1. In my implementation, I modified
> org.openejb.EJBModuleImpl to implement
> org.apache.geronimo.management.StatisticsProvider
> interface. This is part of JSR 77's performance data
> framework. This allows the EJBModuleImpl to provide
> basic statistics like the count of different EJB types
> (EB, SLSB, SFSB, MDB). Is EJBModuleImpl the best place
> to implement the said interface? If not then where is
> the best place to implement it?

I expect we may want similar statistics at the "EJB Container" level
(meaning for all EJBs deployed in the server), but it makes sense to
have them at the module level too.

I will say that if we have stats at the module level, I would expect
to access them via the list of deployed EJB modules elsewhere in the
console, not necessarily through an "EJB Server" page, but I'm not
sure exactly how you've got things laid out.

> 2. While updating the patch to work on G 1.1.0 / 1.1.1
> / 1.2, I encountered a problem. I made the necessary
> changes including modifying EJBModuleImpl to implement
> StatisticsProvider interface. This defines a method –
> public Stats getStats(). I was able to rebuild G
> including the openejb core module successfully but
> deploying a simple stateless session bean throws the
> ff:

Can you find out what ClassLoader is being used at the time?  It
should be a Geronimo ClassLoader from which you can get a module ID
and a list of JARs in both it and its parent modules.

Thanks,
    Aaron

> java.lang.NoClassDefFoundError:
> javax/management/j2ee/statistics/Stats
>         at java.lang.Class.getDeclaredMethods0(Native
> Method)
>         at
> java.lang.Class.privateGetDeclaredMethods(Class.java:1655)
>         at
> java.lang.Class.privateGetPublicMethods(Class.java:1778)
>         at
> java.lang.Class.privateGetPublicMethods(Class.java:1788)
>         at java.lang.Class.getMethods(Class.java:832)
>         at
> org.apache.geronimo.gbean.GBeanInfoBuilder.addInterface(GBeanInfoBuilder.java:279)
>         at
> org.apache.geronimo.gbean.GBeanInfoBuilder.addInterface(GBeanInfoBuilder.java:273)
>         at
> org.apache.geronimo.gbean.GBeanInfoBuilder.addInterface(GBeanInfoBuilder.java:267)
>         at
> org.apache.geronimo.gbean.GBeanInfoBuilder.<init>(GBeanInfoBuilder.java:207)
>         at
> org.apache.geronimo.gbean.GBeanInfoBuilder.createStatic(GBeanInfoBuilder.java:92)
>         at
> org.apache.geronimo.gbean.GBeanInfoBuilder.createStatic(GBeanInfoBuilder.java:45)
>         at
> org.openejb.EJBModuleImpl.<clinit>(EJBModuleImpl.java:255)
>         at
> org.openejb.deployment.OpenEJBModuleBuilder.addGBeans(OpenEJBModuleBuilder.java:399)
>         at
> org.openejb.deployment.OpenEJBModuleBuilder$$FastClassByCGLIB$$11bd7b20.invoke(<generated>)
>         at
> net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>         at
> org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
>         at
> org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:122)
>         at
> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:817)
>         at
> org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
>         at
> org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
>         at
> org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)
>         at
> org.apache.geronimo.j2ee.deployment.ModuleBuilder$$EnhancerByCGLIB$$1fd0a0c0.addGBeans(<generated>)
>         at
> org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(EARConfigBuilder.java:562)
>         at
> org.apache.geronimo.j2ee.deployment.EARConfigBuilder$$FastClassByCGLIB$$38e56ec6.invoke(<generated>)
>         at
> net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>         at
> org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
>         at
> org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:122)
>         at
> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:817)
>         at
> org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
>         at
> org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
>         at
> org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)
>         at
> org.apache.geronimo.deployment.ConfigurationBuilder$$EnhancerByCGLIB$
> $2bbda932.buildConfiguration(<generated>)
>         at
> org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:302)
>         at
> org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:124)
>         at
> org.apache.geronimo.deployment.Deployer$$FastClassByCGLIB$$734a235d.invoke(<generated>)
>         at
> net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>         at
> org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
>         at
> org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:122)
>         at
> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:852)
>         at
> org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)
>         at
> org.apache.geronimo.deployment.plugin.local.AbstractDeployCommand.doDeploy(AbstractDeployCommand.java:106)
>         at
> org.apache.geronimo.deployment.plugin.local.DistributeCommand.run(DistributeCommand.java:60)
>         at java.lang.Thread.run(Thread.java:534)
>
> Any ideas why the openejb module builder is not
> picking up javax/management/j2ee/statistics/Stats
> interface which is part of the G J2EE 1.4 spec jar?
>
> Any comments or suggestions to EJB server portlet
> design and implementation are welcome. You can
> checkout the JIRA -
> http://issues.apache.org/jira/browse/GERONIMO-1701
> which includes ejbMgrPortlet-Snapshot.zip (contains
> *.jpg snapshot of the EJB Server portlet)
>
> Thanks,
> Chris
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>

Mime
View raw message