-
1. Groovy EJBs do not work on JBoss
jaikiran May 9, 2011 3:57 AM (in response to jskov)Can you please post the relevant code and the entire exception stacktrace?
Jesper Skov wrote:
Could not resolve @EJB reference: [EJB Reference: beanInterface 'dk.zoftpvr.test.ITester', beanName 'null', mappedName 'null', lookupName 'null', owning unit 'AbstractVFSDeploymentContext@1002144240{vfs:///opt/tools/jboss-6.0.0.Final/server/default/deploy/test.ear/testWeb.war/}'] for environment entry: env/dk.zoftpvr.test.Srvlet/tester in unit AbstractVFSDeploymentContext@1002144240{vfs:///opt/tools/jboss-6.0.0.Final/server/default/deploy/test.ear/testWeb.war/}
Do you have any EJBs which expose dk.zoftpvr.test.ITester as a business interface? Please post the code of that bean. Where is it located in your deployment?
-
2. Re: Groovy EJBs do not work on JBoss
jskov May 9, 2011 12:05 PM (in response to jaikiran)Sure, the core is really simple. After having problems with my real application, I just hacked something together to verify that the problem was with Groovy EJBs.
The Tester class was "born" as a Java class. As such, it worked fine when deployed. After that, I converted it to Groovy, after which I started getting the exceptions.
The other night, I only saw (to me) meaningless exceptions such as:
<pre>
2011-05-07 15:10:10,718 ERROR [org.jboss.kernel.plugins.dependency.AbstractKernelController] (HDScanner) Error installing to Real: name=vfs:///opt/sources/eclipse-workspace/.metadata/.plugins/org.jboss.ide.eclipse.as.core/J Boss_6.0_Runtime_Server1304771068229/deploy/test.ear state=PreReal mode=Manual requiredState=Real: org.jboss.deployers.spi.DeploymentException: Error during deploy: vfs:///opt/sources/eclipse-workspace/.metadata/.plugins/or g.jboss.ide.eclipse.as.core/JBoss_6.0_Runtime_Server1304771068229/deploy/test.ear/testWeb.war/ at org.jboss.deployers.spi.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:49) [:2.2.0.GA] at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:185) [:2.2.0.GA] at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1832) [:2.2.0.GA] at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1550) [:2.2.0.GA] at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1603) [:2.2.0.GA] at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1491) [:2.2.0.GA] at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:379) [jboss-dependency.jar:2.2.0.GA] at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:2044) [jboss-dependency.jar:2.2.0.GA] at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:1083) [jboss-dependency.jar:2.2.0.GA] at org.jboss.dependency.plugins.AbstractController.executeOrIncrementStateDirectly(AbstractController.java:1322) [jboss-dependency.jar:2.2.0.GA] at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1246) [jboss-dependency.jar:2.2.0.GA] at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1139) [jboss-dependency.jar:2.2.0.GA] at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:939) [jboss-dependency.jar:2.2.0.GA] at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:654) [jboss-dependency.jar:2.2.0.GA] at org.jboss.deployers.plugins.deployers.DeployersImpl.change(DeployersImpl.java:1983) [:2.2.0.GA] at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:1076) [:2.2.0.GA] at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:679) [:2.2.0.GA] at org.jboss.system.server.profileservice.deployers.MainDeployerPlugin.process(MainDeployerPlugin.java:106) [:6.0.0.Final] at org.jboss.profileservice.dependency.ProfileControllerContext$DelegateDeployer.process(ProfileControllerContext.java:143) [:0.2.2] at org.jboss.profileservice.deployment.hotdeploy.HDScanner$HDScanAction.deploy(HDScanner.java:240) [:0.2.2] at org.jboss.profileservice.deployment.hotdeploy.HDScanner$HDScanAction.complete(HDScanner.java:192) [:0.2.2] at org.jboss.profileservice.management.TwoPCActionWrapper.doComplete(TwoPCActionWrapper.java:57) [:0.2.2] at org.jboss.profileservice.management.actions.AbstractTwoPhaseModificationAction.complete(AbstractTwoPhaseModificationAction.java:74) [:0.2.2] at org.jboss.profileservice.management.actions.AbstractTwoPhaseModificationAction.prepare(AbstractTwoPhaseModificationAction.java:95) [:0.2.2] at org.jboss.profileservice.management.ModificationSession.prepare(ModificationSession.java:87) [:0.2.2] at org.jboss.profileservice.management.AbstractActionController.internalPerfom(AbstractActionController.java:234) [:0.2.2] at org.jboss.profileservice.management.AbstractActionController.performWrite(AbstractActionController.java:213) [:0.2.2] at org.jboss.profileservice.management.AbstractActionController.perform(AbstractActionController.java:150) [:0.2.2] at org.jboss.profileservice.management.AbstractActionController.perform(AbstractActionController.java:135) [:0.2.2] at org.jboss.profileservice.deployment.hotdeploy.HDScanner.scan(HDScanner.java:146) [:0.2.2] at org.jboss.profileservice.deployment.hotdeploy.HDScanner.run(HDScanner.java:90) [:0.2.2] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) [:1.6.0_24] at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) [:1.6.0_24] at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) [:1.6.0_24] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) [:1.6.0_24] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) [:1.6.0_24] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) [:1.6.0_24] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_24] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_24] at java.lang.Thread.run(Thread.java:662) [:1.6.0_24] Caused by: java.lang.RuntimeException: Could not resolve @EJB reference: [EJB Reference: beanInterface 'dk.zoftpvr.test.ITester', beanName 'null', mappedName 'null', lookupName 'null', owning unit 'AbstractVFSDeploymentContext@29579534{vfs:///opt/sources/eclipse-workspace/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.0_Runtime_Server1304771068229/deploy/test.ear/testWeb.war/}'] for environment entry: env/dk.zoftpvr.test.Srvlet/tester in unit AbstractVFSDeploymentContext@29579534{vfs:///opt/sources/eclipse-workspace/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.0_Runtime_Server1304771068229/deploy/test.ear/testWeb.war/} at org.jboss.ejb3.jndi.deployers.resource.provider.AnnotatedEJBRefResourceProvider.provide(AnnotatedEJBRefResourceProvider.java:99) [:0.1.7] at org.jboss.ejb3.jndi.deployers.resource.provider.AnnotatedEJBRefResourceProvider.provide(AnnotatedEJBRefResourceProvider.java:50) [:0.1.7] at org.jboss.switchboard.mc.JndiEnvironmentProcessor.process(JndiEnvironmentProcessor.java:68) [:1.0.0-alpha-15] at org.jboss.switchboard.mc.deployer.AbstractSwitchBoardDeployer.process(AbstractSwitchBoardDeployer.java:119) [:1.0.0-alpha-15] at org.jboss.switchboard.mc.deployer.WebEnvironmentSwitchBoardDeployer.internalDeploy(WebEnvironmentSwitchBoardDeployer.java:66) [:1.0.0-alpha-15] at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55) [:2.2.0.GA] at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179) [:2.2.0.GA] ... 38 more
So the "38 more" hides what may be the real cause.
However, looking in the log file now, I also see the below. But I am not sure what I did to provoke it - maybe using (@EJB class) instead of (@EJB interface). It could be something unlrelated though - I don't remember seeing it before.
2011-05-07 15:06:53,288 ERROR [org.jboss.kernel.plugins.dependency.AbstractKernelController] (RMI TCP Connection(2)-127.0.0.1) Error installing to Start: name=jboss.j2ee:ear=test.ear,jar=testEJB.jar,name=Tester,service=EJB3 ,type=nointerface-view-jndi-binder state=Create: java.lang.RuntimeException: Could not create no-interface view for bean class: class dk.zoftpvr.test.Tester at org.jboss.ejb3.nointerface.impl.jndi.SessionlessBeanNoInterfaceViewBinder.bind(SessionlessBeanNoInterfaceViewBinder.java:87) [:6.0.0.Final] at org.jboss.ejb3.nointerface.impl.jndi.AbstractNoInterfaceViewBinder.start(AbstractNoInterfaceViewBinder.java:77) [:6.0.0.Final] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_24] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [:1.6.0_24] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [:1.6.0_24] at java.lang.reflect.Method.invoke(Method.java:597) [:1.6.0_24] at org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:60) [jboss-reflect.jar:2.2.0.GA] at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:168) [jboss-reflect.jar:2.2.0.GA] at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66) [jboss-reflect.jar:2.2.0.GA] at org.jboss.kernel.plugins.dependency.KernelControllerContextAction$JoinpointDispatchWrapper.execute(KernelControllerContextAction.java:257) [jboss-kernel.jar:2.2.0.GA] at org.jboss.kernel.plugins.dependency.ExecutionWrapper.execute(ExecutionWrapper.java:47) [jboss-kernel.jar:2.2.0.GA] at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextAction.java:125) [jboss-kernel.jar:2.2.0.GA] at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:72) [jboss-kernel.jar:2.2.0.GA] at org.jboss.kernel.plugins.dependency.LifecycleAction.installActionInternal(LifecycleAction.java:202) [jboss-kernel.jar:2.2.0.GA] at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:54) [jboss-kernel.jar:2.2.0.GA] at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:42) [jboss-kernel.jar:2.2.0.GA] at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62) [jboss-dependency.jar:2.2.0.GA] at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71) [jboss-dependency.jar:2.2.0.GA] at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51) [jboss-dependency.jar:2.2.0.GA] at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:379) [jboss-dependency.jar:2.2.0.GA] at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:2044) [jboss-dependency.jar:2.2.0.GA] at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:1083) [jboss-dependency.jar:2.2.0.GA] at org.jboss.dependency.plugins.AbstractController.executeOrIncrementStateDirectly(AbstractController.java:1322) [jboss-dependency.jar:2.2.0.GA] at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1246) [jboss-dependency.jar:2.2.0.GA] at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1139) [jboss-dependency.jar:2.2.0.GA] at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:894) [jboss-dependency.jar:2.2.0.GA] at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:641) [jboss-dependency.jar:2.2.0.GA] at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:182) [:2.2.0.GA] at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:58) [:2.2.0.GA] at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62) [:2.2.0.GA] at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55) [:2.2.0.GA] at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179) [:2.2.0.GA] at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1832) [:2.2.0.GA] at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1550) [:2.2.0.GA] at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1571) [:2.2.0.GA] at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1603) [:2.2.0.GA] at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1491) [:2.2.0.GA] ... Caused by: java.lang.RuntimeException: Could not create a proxy of type class dk.zoftpvr.test.Tester at org.jboss.ejb3.proxy.javassist.JavassistProxyFactory.createProxy(JavassistProxyFactory.java:117) [:1.0.0-alpha-1] at org.jboss.ejb3.nointerface.impl.jndi.SessionlessBeanNoInterfaceViewBinder.bind(SessionlessBeanNoInterfaceViewBinder.java:83) [:6.0.0.Final] ... 102 more Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [:1.6.0_24] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) [:1.6.0_24] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) [:1.6.0_24] at java.lang.reflect.Constructor.newInstance(Constructor.java:513) [:1.6.0_24] at javassist.util.proxy.ProxyFactory.create(ProxyFactory.java:651) [javassist.jar:6.0.0.Final] at org.jboss.ejb3.proxy.javassist.JavassistProxyFactory.createProxy(JavassistProxyFactory.java:113) [:1.0.0-alpha-1] ... 103 more Caused by: javax.ejb.EJBException: Cannot invoke method $getStaticMetaClass on nointerface view at org.jboss.ejb3.nointerface.impl.invocationhandler.NoInterfaceViewInvocationHandler.invokeEndpoint(NoInterfaceViewInvocationHandler.java:134) [:6.0.0.Final] at org.jboss.ejb3.nointerface.impl.invocationhandler.NoInterfaceViewInvocationHandler.access$000(NoInterfaceViewInvocationHandler.java:54) [:6.0.0.Final] at org.jboss.ejb3.nointerface.impl.invocationhandler.NoInterfaceViewInvocationHandler$1.invoke(NoInterfaceViewInvocationHandler.java:103) [:6.0.0.Final] at org.jboss.ejb3.sis.reflect.InterceptorInvocationHandler$1.proceed(InterceptorInvocationHandler.java:84) [:1.0.0-alpha-1] at org.jboss.ejb3.sis.InterceptorAssembly$1.proceed(InterceptorAssembly.java:82) [:1.0.0-alpha-1] at org.jboss.ejb3.nointerface.impl.async.AsyncClientInterceptor.invoke(AsyncClientInterceptor.java:119) [:6.0.0.Final] at org.jboss.ejb3.sis.InterceptorAssembly$1.proceed(InterceptorAssembly.java:74) [:1.0.0-alpha-1] at org.jboss.ejb3.nointerface.impl.invocationhandler.ObjectMethodsInterceptor.invoke(ObjectMethodsInterceptor.java:78) [:6.0.0.Final] at org.jboss.ejb3.sis.InterceptorAssembly$1.proceed(InterceptorAssembly.java:74) [:1.0.0-alpha-1] at org.jboss.ejb3.sis.InterceptorAssembly.invoke(InterceptorAssembly.java:90) [:1.0.0-alpha-1] at org.jboss.ejb3.sis.reflect.InterceptorInvocationHandler.invoke(InterceptorInvocationHandler.java:110) [:1.0.0-alpha-1] at org.jboss.ejb3.nointerface.impl.invocationhandler.NoInterfaceViewInvocationHandler.invoke(NoInterfaceViewInvocationHandler.java:115) [:6.0.0.Final] at org.jboss.ejb3.proxy.javassist.JavassistInvocationHandlerAdapter.invoke(JavassistInvocationHandlerAdapter.java:71) [:1.0.0-alpha-1] at dk.zoftpvr.test.Tester_$$_javassist_3.$getStaticMetaClass(Tester_$$_javassist_3.java) at dk.zoftpvr.test.Tester.(Tester.groovy) at dk.zoftpvr.test.Tester_$$_javassist_3.(Tester_$$_javassist_3.java) ... 109 more
</pre>
*sigh* Sorry for messing up the formatting... Silly editor, silly hands...
-
Srvlet.java.zip 425 bytes
-
Tester.groovy.zip 313 bytes
-
ITester.java.zip 211 bytes
-
-
3. Re: Groovy EJBs do not work on JBoss
jskov May 10, 2011 1:52 PM (in response to jskov)What a botched reply. Sorry. I was short on time. Let me try again.
Attached are the two logs resulting from putting the test.ear (also attached) into server/default/deploy.
The test.ear is compiled with the version of Srvlet that uses "@EJB ITester tester;". The ear-file is exported from Eclipse 3.6
I have placed groovy-all-1.8.0.jar in the server's lib and common/lib folders.
Thanks for any insight,
Jesper
-
test.ear 1.5 MB
-
boot.log.zip 7.7 KB
-
server.log.zip 1.1 KB
-
-
4. Groovy EJBs do not work on JBoss
jaikiran May 12, 2011 1:38 PM (in response to jskov)Sorry, didn't get a chance to look at this yet. Will take a look tomorrow.
-
5. Re: Groovy EJBs do not work on JBoss
jaikiran May 13, 2011 2:12 AM (in response to jaikiran)Here's what's happening - you have a @Stateless EJB:
@Stateless public class Tester implements ITester, GroovyObject {
and the ITester interface looks like:
public interface ITester { public String heyHo(); }
The Tester bean is implementing more than one interface and hence ITester isn't considered as the default business interface. As a result, you cannot use ITester to do the @EJB injection in your servlet:
@WebServlet({"/Srvlet"}) public class Srvlet extends HttpServlet { @EJB ITester tester;
What you have to do is, mark ITester as (either @Remote or @Local) business interface and then use it for injection. Something like:
@Stateless @Remote(ITester.class) public class Tester implements ITester, GroovyObject {
That should get this working.
-
6. Re: Groovy EJBs do not work on JBoss
jskov May 13, 2011 10:43 AM (in response to jaikiran)Yes! That fixed the problem.
I would never have figured that out by my self. Thank you!
I'm off to migrate my application.
Cheers!
-
7. Re: Groovy EJBs do not work on JBoss
jan.swaelens Oct 3, 2011 1:07 AM (in response to jaikiran)Hello Jaikiran,
I have a similar set-up but I am working with descriptors instead of annotations. Could you have a look to see where I am going wrong please.
I have an ejb implemented in a class called MonitorBean, which has two interfaces IMonitor and IProcess (who define the business methods).
I have a remote interface for this bean called Monitor which extends javax.ejb.EJBObject and the two other interfaces.
I have a home interface for this bean called MonitorHome which extends javax.ejb.EJBHome.
In my descriptor I have the following:
<session id="Monitor">
<display-name>Monitor</display-name>
<ejb-name>Monitor</ejb-name>
<home>MonitorHome</home>
<remote>Monitor</remote>
<ejb-class>MonitorBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
// ...
</session>
This configuration is giving me 'No jndi bindings will be created for EJB: Monitor since no views are exposed' warning - however I fail to see where this is going wrong.
I have other beans that follow the same setup and work fine, with the difference that they only implement 1 interface where this bean is implementing two (IMonitor and IProcess).
Thanks for your insights!
(This is on the 7.0.2 final version)
-
8. Re: Groovy EJBs do not work on JBoss
jaikiran Oct 3, 2011 1:07 AM (in response to jan.swaelens)The "problem" here is that, in your case you have bean which exposes EJB2.x views (remote and home) which aren't yet supported in any of the released AS7 versions. As a result, the bean is considered to have no views. Now the other beans which implement just 1 interface, are considered to expose a view since that 1 interface is considered to be the default local business interface view for that bean (as per the spec).
If you want to expose those EJB2.x views, then you'll have to try the latest nightly build (which I think has some support for EJB2.x view) or wait for a future release of AS7 which has the support.
-
9. Re: Groovy EJBs do not work on JBoss
jan.swaelens Oct 3, 2011 1:09 AM (in response to jaikiran)Ah I see, will try the nightly one or stick with the 6 version until the 2.x is supported. Thanks for clearing this up.