You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@geronimo.apache.org by Marcin Waldowski <mw...@sulechow.net> on 2007/09/11 16:05:16 UTC
Problem with @PostConstruct in MDB
Hello.
I use Geronimo 2.0.1. When I add to my mdb code following lines:
import javax.interceptor.InvocationContext;
import javax.annotation.PostConstruct;
@PostConstruct
public void construct(InvocationContext ctx) {
// do nothing
}
I receive exception below during deployment. Whitout this lines
everything works ok. My dependency for ejb module to satisfy aditional
imports is:
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-annotation_1.0_spec</artifactId>
<version>1.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-interceptor_3.0_spec</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
Can anyone point me what I do wrong?
Regards,
Marcin
org.apache.geronimo.common.DeploymentException: Jar failed validation: pprsrv-ejb-1.2.jarERROR ... null: Cannot validate jar: Java heap space
org.apache.geronimo.common.DeploymentException: org.apache.geronimo.common.DeploymentException: Jar failed validation: pprsrv-ejb-1.2.jarERROR ... null: Cannot validate jar: Java heap space
at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:385)
at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:126)
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:124)
at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:865)
at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)
at org.apache.geronimo.deployment.plugin.local.AbstractDeployCommand.doDeploy(AbstractDeployCommand.java:116)
at org.apache.geronimo.deployment.plugin.local.RedeployCommand.redeploySameConfiguration(RedeployCommand.java:225)
at org.apache.geronimo.deployment.plugin.local.RedeployCommand.run(RedeployCommand.java:101)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.apache.geronimo.common.DeploymentException: Jar failed validation: pprsrv-ejb-1.2.jarERROR ... null: Cannot validate jar: Java heap space
at org.apache.geronimo.openejb.deployment.EjbModuleBuilder.getEjbJarInfo(EjbModuleBuilder.java:528)
at org.apache.geronimo.openejb.deployment.EjbModuleBuilder.initContext(EjbModuleBuilder.java:437)
at org.apache.geronimo.openejb.deployment.EjbModuleBuilder$$FastClassByCGLIB$$cd80af20.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:124)
at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:830)
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$$b86e2c25.initContext(<generated>)
at org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(EARConfigBuilder.java:576)
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:124)
at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:830)
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.CorbaGBeanNameSource$$EnhancerByCGLIB$$ef9ba63a.buildConfiguration(<generated>)
at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:304)
... 11 more
Re: Problem with @PostConstruct in MDB
Posted by Marcin Waldowski <mw...@sulechow.net>.
Kevan Miller wrote:
>
> On Sep 11, 2007, at 4:13 PM, David Blevins wrote:
>
>>
>> The exception you should have gotten was:
>>
>> - - - - - - - -
>> Jar Failed validaton: pprsrv-ejb-1.2.jar
>> FAIL - YourBeanName - Invalid PostConstruct arguments:
>> construct(InvocationContext)
>> - - - - - - - -
>>
>> Just added this page for you:
>> http://cwiki.apache.org/OPENEJB/callbacks.html
David, thanks. Now I see that I've mix up ejb annotation with
interceptor annotation. Now my application deploy without errors :)
>
>>
>>> Caused by: org.apache.geronimo.common.DeploymentException: Jar
>>> failed validation: pprsrv-ejb-1.2.jarERROR ... null: Cannot
>>> validate jar: Java heap space
>>> at
>>> org.apache.geronimo.openejb.deployment.EjbModuleBuilder.getEjbJarInfo(EjbModuleBuilder.java:528)
>>>
>>> at
>>> org.apache.geronimo.openejb.deployment.EjbModuleBuilder.initContext(EjbModuleBuilder.java:437)
>>>
>>> at
>>> org.apache.geronimo.openejb.deployment.EjbModuleBuilder$$FastClassByCGLIB$$cd80af20.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:124)
>>>
>>> at
>>> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:830)
>>>
>>
>> This should not happen. Kevan, any suggestions on better memory
>> settings?
>
> Strange. Marcin, how big is your app?
>
> Have you tried increasing your max heap space (e.g. -Xmx128m )?
>
> Although possible, I find it a bit hard to believe that 1) your app is
> large enough to have you at the very limit of your heap space and 2)
> that adding @PostConstruct is putting you over the heap space limit. I
> wonder if there isn't a bug in the validation code...
>
> Marcin, can you share your app with us?
>
> --kevan
>
Kevan, my app is rather small (source is only 500 kB). Unfortunately I
cannot share my app :(
I have tried to reporoduce this error on the source code for
http://cwiki.apache.org/GMOxDOC20/jms-and-mdb-sample-application.html
example. Patch is in attachment. I supposed to receive error, any error,
because, as David said, @PostConstruct arguments are invalid. But
modified jms-mdb-sample has been deployed without any errors. Strange,
but maybe the same bad things happened, but jms-mdb-sample is not big
enought to create "org.apache.geronimo.common.DeploymentException: Jar
failed validation: pprsrv-ejb-1.2.jarERROR ... null: Cannot validate
jar: Java heap space"
HTH,
Marcin
Re: Problem with @PostConstruct in MDB
Posted by Kevan Miller <ke...@gmail.com>.
On Sep 11, 2007, at 4:13 PM, David Blevins wrote:
>
> On Sep 11, 2007, at 7:05 AM, Marcin Waldowski wrote:
>
>> Hello.
>>
>> I use Geronimo 2.0.1. When I add to my mdb code following lines:
>>
>> import javax.interceptor.InvocationContext;
>> import javax.annotation.PostConstruct;
>>
>> @PostConstruct
>> public void construct(InvocationContext ctx) {
>> // do nothing
>> }
>>
>> I receive exception below during deployment. Whitout this lines
>> everything works ok.
>
> The exception you should have gotten was:
>
> - - - - - - - -
> Jar Failed validaton: pprsrv-ejb-1.2.jar
> FAIL - YourBeanName - Invalid PostConstruct arguments: construct
> (InvocationContext)
> - - - - - - - -
>
> Just added this page for you: http://cwiki.apache.org/OPENEJB/
> callbacks.html
Very nice. Thanks for the doc David!
>
>> Caused by: org.apache.geronimo.common.DeploymentException: Jar
>> failed validation: pprsrv-ejb-1.2.jarERROR ... null: Cannot
>> validate jar: Java heap space
>> at
>> org.apache.geronimo.openejb.deployment.EjbModuleBuilder.getEjbJarInfo
>> (EjbModuleBuilder.java:528)
>> at
>> org.apache.geronimo.openejb.deployment.EjbModuleBuilder.initContext
>> (EjbModuleBuilder.java:437)
>> at org.apache.geronimo.openejb.deployment.EjbModuleBuilder$
>> $FastClassByCGLIB$$cd80af20.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:124)
>> at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke
>> (GBeanInstance.java:830)
>
> This should not happen. Kevan, any suggestions on better memory
> settings?
Strange. Marcin, how big is your app?
Have you tried increasing your max heap space (e.g. -Xmx128m )?
Although possible, I find it a bit hard to believe that 1) your app
is large enough to have you at the very limit of your heap space and
2) that adding @PostConstruct is putting you over the heap space
limit. I wonder if there isn't a bug in the validation code...
Marcin, can you share your app with us?
--kevan
Re: Problem with @PostConstruct in MDB
Posted by David Blevins <da...@visi.com>.
On Sep 11, 2007, at 7:05 AM, Marcin Waldowski wrote:
> Hello.
>
> I use Geronimo 2.0.1. When I add to my mdb code following lines:
>
> import javax.interceptor.InvocationContext;
> import javax.annotation.PostConstruct;
>
> @PostConstruct
> public void construct(InvocationContext ctx) {
> // do nothing
> }
>
> I receive exception below during deployment. Whitout this lines
> everything works ok.
The exception you should have gotten was:
- - - - - - - -
Jar Failed validaton: pprsrv-ejb-1.2.jar
FAIL - YourBeanName - Invalid PostConstruct arguments: construct
(InvocationContext)
- - - - - - - -
Just added this page for you: http://cwiki.apache.org/OPENEJB/
callbacks.html
> Caused by: org.apache.geronimo.common.DeploymentException: Jar
> failed validation: pprsrv-ejb-1.2.jarERROR ... null: Cannot
> validate jar: Java heap space
> at
> org.apache.geronimo.openejb.deployment.EjbModuleBuilder.getEjbJarInfo(
> EjbModuleBuilder.java:528)
> at
> org.apache.geronimo.openejb.deployment.EjbModuleBuilder.initContext
> (EjbModuleBuilder.java:437)
> at org.apache.geronimo.openejb.deployment.EjbModuleBuilder$
> $FastClassByCGLIB$$cd80af20.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:124)
> at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke
> (GBeanInstance.java:830)
This should not happen. Kevan, any suggestions on better memory
settings?
-David