Glassfish 3.1.2.2 and Faces

709 views
Skip to first unread message

Sven

unread,
Jul 28, 2014, 7:43:34 AM7/28/14
to hotswa...@googlegroups.com
Greetings,

i have trouble to run HotswapAgent with Glassfish and Faces.
I added the javaagent and xxaltvm properties to domain.xml as JVM-Option.

First Step i must deactivate ELResolver because field cache is missing.

Information: HOTSWAP AGENT: 13:15:41.691 ERROR (org.hotswap.agent.annotation.handler.TransformHandler) - InvocationTargetException in transform method on plugin 'class org.hotswap.agent.plugin.elresolver.ELResolverPlugin' class 'javax/el/BeanELResolver'.
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.hotswap.agent.annotation.handler.TransformHandler.transform(TransformHandler.java:162)
    at org.hotswap.agent.annotation.handler.TransformHandler$1.transform(TransformHandler.java:73)
    at org.hotswap.agent.util.HotswapTransformer.transform(HotswapTransformer.java:116)
    at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
    at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:424)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2128)
    at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1432)
    at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:72)
    at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1843)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at org.apache.felix.framework.BundleWiringImpl.getClassByDelegation(BundleWiringImpl.java:1317)
    at org.apache.felix.framework.BundleWiringImpl.searchImports(BundleWiringImpl.java:1481)
    at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1427)
    at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:72)
    at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1843)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at org.glassfish.web.loader.WebappClassLoader.purgeELBeanClasses(WebappClassLoader.java:2613)
    at org.glassfish.web.loader.WebappClassLoader.stop(WebappClassLoader.java:1649)
    at org.glassfish.web.loader.WebappClassLoader.preDestroy(WebappClassLoader.java:1631)
    at org.glassfish.deployment.common.DeploymentContextImpl.getClassLoader(DeploymentContextImpl.java:236)
    at org.glassfish.deployment.common.DeploymentContextImpl.getClassLoader(DeploymentContextImpl.java:186)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:450)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
    at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:389)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:348)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:363)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1085)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:95)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1291)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1259)
    at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:461)
    at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:212)
    at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:179)
    at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117)
    at com.sun.enterprise.v3.services.impl.ContainerMapper$Hk2DispatcherCallable.call(ContainerMapper.java:354)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
    at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
    at java.lang.Thread.run(Thread.java:744)
Caused by: org.hotswap.agent.javassist.CannotCompileException: [source error] no such field: cache
    at org.hotswap.agent.javassist.CtNewMethod.make(CtNewMethod.java:75)
    at org.hotswap.agent.javassist.CtNewMethod.make(CtNewMethod.java:43)
    at org.hotswap.agent.plugin.elresolver.ELResolverPlugin.beanELResolverRegisterVariable(ELResolverPlugin.java:73)
    ... 56 more
Caused by: compile error: no such field: cache
    at org.hotswap.agent.javassist.compiler.MemberResolver.lookupField(MemberResolver.java:298)
    at org.hotswap.agent.javassist.compiler.MemberResolver.lookupFieldByJvmName(MemberResolver.java:285)
    at org.hotswap.agent.javassist.compiler.TypeChecker.fieldAccess(TypeChecker.java:806)
    at org.hotswap.agent.javassist.compiler.TypeChecker.atFieldAssign(TypeChecker.java:258)
    at org.hotswap.agent.javassist.compiler.JvstTypeChecker.atFieldAssign(JvstTypeChecker.java:76)
    at org.hotswap.agent.javassist.compiler.TypeChecker.atAssignExpr(TypeChecker.java:220)
    at org.hotswap.agent.javassist.compiler.ast.AssignExpr.accept(AssignExpr.java:37)
    at org.hotswap.agent.javassist.compiler.CodeGen.doTypeCheck(CodeGen.java:241)
    at org.hotswap.agent.javassist.compiler.CodeGen.atStmnt(CodeGen.java:333)
    at org.hotswap.agent.javassist.compiler.ast.Stmnt.accept(Stmnt.java:51)
    at org.hotswap.agent.javassist.compiler.CodeGen.atStmnt(CodeGen.java:352)
    at org.hotswap.agent.javassist.compiler.ast.Stmnt.accept(Stmnt.java:51)
    at org.hotswap.agent.javassist.compiler.CodeGen.atMethodBody(CodeGen.java:296)
    at org.hotswap.agent.javassist.compiler.CodeGen.atMethodDecl(CodeGen.java:279)
    at org.hotswap.agent.javassist.compiler.ast.MethodDecl.accept(MethodDecl.java:52)
    at org.hotswap.agent.javassist.compiler.Javac.compileMethod(Javac.java:153)
    at org.hotswap.agent.javassist.compiler.Javac.compile(Javac.java:83)
    at org.hotswap.agent.javassist.CtNewMethod.make(CtNewMethod.java:71)
    ... 58 more

After disable ELResolver, its running but when i try to deploy a maven project with faces and jsf activated, following Exception occurred:

Schwerwiegend: Critical error during deployment:
java.lang.NoClassDefFoundError: org/hotswap/agent/PluginManager
    at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:386)
    at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:225)
    at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:4750)
    at com.sun.enterprise.web.WebModule.contextListenerStart(WebModule.java:550)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:5366)
    at com.sun.enterprise.web.WebModule.start(WebModule.java:498)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:917)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:901)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:733)
    at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2019)
    at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1669)
    at com.sun.enterprise.web.WebApplication.start(WebApplication.java:109)
    at org.glassfish.internal.data.EngineRef.start(EngineRef.java:130)
    at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:269)
    at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:301)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:461)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
    at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:389)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:348)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:363)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1085)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:95)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1291)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1259)
    at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:461)
    at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:212)
    at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:179)
    at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117)
    at com.sun.enterprise.v3.services.impl.ContainerMapper$Hk2DispatcherCallable.call(ContainerMapper.java:354)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
    at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
    at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.ClassNotFoundException: org.hotswap.agent.PluginManager not found by org.glassfish.com.sun.faces [136]
    at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1460)
    at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:72)
    at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1843)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 44 more




Jiří Bubník

unread,
Jul 28, 2014, 8:55:51 AM7/28/14
to Sven, hotswa...@googlegroups.com

Hi Sven,

 

Unfortunatelly Glassfish is not supported yet, I have created an issue https://github.com/HotswapProjects/HotswapAgent/issues/39.

 

You may set ${eclipselink.bootdelegation} (see https://blogs.oracle.com/swchan/entry/profiling_glassfish_3_with_jprofiler). See https://github.com/HotswapProjects/HotswapAgent/blob/master/hotswap-agent-core/src/main/java/org/hotswap/agent/HotswapAgent.java HOTSWAP_AGENT_EXPORT_PACKAGES for required values. Then the Glassfish server should at least start correctly and support hotswap via debugging.

 

Jiri

--
You received this message because you are subscribed to the Google Groups "HotswapAgent" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hotswapagent...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Sven

unread,
Jul 28, 2014, 12:25:57 PM7/28/14
to hotswa...@googlegroups.com
Hi Jiri,

im sorry but your tip does not work. The File $GLASSFISH_HOME/glassfish3/glassfish/osgi/felix/conf/config.properties. does not exists since GF 3.1.2, but i have made following changes in $GLASSFISH_HOME/glassfish3/glassfish/config/osgi.properties:

-----------------
# Although Eclipselink imports these packages, in typical GlassFish installation,
# Oracle JDBC driver may not be available as a bundle, so we ask user to install it in
# java.ext.dirs and the bootdelegation helps there.
eclipselink.bootdelegation=oracle.sql, oracle.sql.*, org.hotswap.agent.annotation.*,org.hotswap.agent.command.*,org.hotswap.agent.config.*,org.hotswap.agent.logging.*,org.hotswap.agent.plugin.*,org.hotswap.agent.util.*,org.hotswap.agent.watch.*

# There is no need to use bootdelegation except for the following issues:
# 1. EclipseLink
# 4. NetBeans profiler packages exist in parent class loader (see issue #8612)
# 5. BTrace exists in bootclasspath.
org.osgi.framework.bootdelegation=${eclipselink.bootdelegation}, \
                                  org.hotswap.agent.annotation, org.hotswap.agent.annotation.*, \
                                  org.hotswap.agent.command, org.hotswap.agent.command.*, \
                                  org.hotswap.agent.config,org.hotswap.agent.config.*, \
                                  org.hotswap.agent.logging,org.hotswap.agent.logging.*, \
                                  org.hotswap.agent.plugin, org.hotswap.agent.plugin.*, \
                                  org.hotswap.agent.util,org.hotswap.agent.util.*, \
                                  org.hotswap.agent.watch,org.hotswap.agent.watch.*, \
                                  com.sun.btrace, com.sun.btrace.*, \
                                  org.netbeans.lib.profiler, org.netbeans.lib.profiler.*
-----------------------
I tried many variations, nothing helped.

Allways get:
And also Hibernate does´nt work...

Schwerwiegend: org/hotswap/agent/logging/AgentLogger
java.lang.NoClassDefFoundError: org/hotswap/agent/logging/AgentLogger
    at org.hotswap.agent.plugin.hibernate.HibernatePersistenceHelper.<clinit>(HibernatePersistenceHelper.java:20)
    at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java)
    at org.glassfish.persistence.jpa.PersistenceUnitLoader.loadPU(PersistenceUnitLoader.java:206)
    at org.glassfish.persistence.jpa.PersistenceUnitLoader.<init>(PersistenceUnitLoader.java:120)
Message has been deleted

vladimir dvorak

unread,
Jul 28, 2014, 2:15:40 PM7/28/14
to hotswa...@googlegroups.com
  Hi Sven,

which ELResolver library do you use?

vladimir

Sven

unread,
Jul 28, 2014, 3:23:47 PM7/28/14
to hotswa...@googlegroups.com
Hello Vladimir,

this Exception only occured at GF 3.1.2.2. I tried today a GF 3.0.1 and the Exception of ELResolver is gone, after switch to GF 3.1.2.2 with an simple maven Project with J2EE 6 and JSF activated ...
Information: HOTSWAP AGENT: 21:16:12.529 ERROR (org.hotswap.agent.annotation.handler.TransformHandler) - InvocationTargetException in transform method on plugin 'class org.hotswap.agent.plugin.elresolver.ELResolverPlugin' class 'javax/el/BeanELResolver'.
same Exception is there.

Btw. the other ClassNotFound Exceptions still exists in GF 3.0.1 and i used the instructions by Jiri.


Am Montag, 28. Juli 2014 13:43:34 UTC+2 schrieb Sven:

Jiří Bubník

unread,
Jul 30, 2014, 4:25:54 AM7/30/14
to Sven, hotswa...@googlegroups.com

Hi,

 

Please try the latest version of HotswapAgent (beta 0.4).

 

Because of OSGi import, I have moved PluginManager to seperate package (org.hotswap.agent.config.PluginManager). However, your error still shows old package:

java.lang.NoClassDefFoundError: org/hotswap/agent/PluginManager

Jiri

Reply all
Reply to author
Forward
0 new messages