OpenEJB Assembler Error with Corbetura '1.10-svn' Instrumented EJBs
EJBs instrumented by the latest Cobertura (svn rev 794) will not load. Assembly and tests work fine with un-instrumented EJBs and EJBs instrumented with 1.9.4.1, so I'm pretty sure it's related to Cobertura.
I'm trying to use the latest Cobertura to take advantage of the ignoreTrivial and ignoreMethodAnnotation features.
The following is logged during container startup:
Apache OpenEJB 3.2-SNAPSHOT build: 20101105-01:53
http://openejb.apache.org/
INFO - openejb.home = C:\TEMP
INFO - openejb.base = C:\TEMP
DEBUG - Using default 'openejb.assembler=org.apache.openejb.assembler.classic.Assembler'
DEBUG - Using default 'openejb.jndiname.failoncollision=true'
DEBUG - Using default 'openejb.configurator=org.apache.openejb.config.ConfigurationFactory'
DEBUG - Using default 'openejb.validation.skip=false'
DEBUG - Using default 'openejb.deploymentId.format={ejbName}'
DEBUG - Using default 'openejb.debuggable-vm-hackery=false'
DEBUG - Using default 'openejb.webservices.enabled=true'
DEBUG - Using default 'openejb.vendor.config=ALL' Possible values are: geronimo, glassfish, jboss, weblogic or NONE or ALL
DEBUG - Using default 'openejb.provider.default=org.apache.openejb.embedded'
INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service)
INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)
DEBUG - Using default 'openejb.deployments.classpath=true'
INFO - Using 'openejb.deployments.classpath.include=.*classes/.*'
DEBUG - Using default 'openejb.deployments.classpath.exclude=.*'
DEBUG - Using default 'openejb.deployments.classpath.require.descriptor=client' Possible values are: ejb, client or NONE or ALL
INFO - Using 'openejb.deployments.c开发者_运维百科lasspath.filter.descriptors=true'
DEBUG - Using default 'openejb.deployments.classpath.filter.systemapps=true'
DEBUG - Inspecting classpath for applications: 1 urls.
INFO - Found EjbModule in classpath: C:\EclipseHeliosBase\CoverageTest\testResults\coverage\instrumented\classes
DEBUG - URLs after filtering: 10
DEBUG - Annotations path: file:/C:/EclipseHeliosBase/CoverageTest/testResults/coverage/instrumented/classes/
DEBUG - Searched 1 classpath urls in 47 milliseconds. Average 47 milliseconds per url.
DEBUG - Using default 'openejb.deployments.classpath.ear=true'
INFO - Beginning load: C:\EclipseHeliosBase\CoverageTest\testResults\coverage\instrumented\classes
DEBUG - Using default 'openejb.tempclassloader.skip=none' Possible values are: none, annotations, enums or NONE or ALL
DEBUG - Using default 'openejb.tempclassloader.skip=none' Possible values are: none, annotations, enums or NONE or ALL
INFO - Configuring enterprise application: classpath.ear
DEBUG - No ejb-jar.xml found assuming annotated beans present: classpath.ear, module: classes
DEBUG - No beans.xml found assuming annotated beans present: classpath.ear, module: classes
DEBUG - Searching for annotated application exceptions (see OPENEJB-980)
FATAL - OpenEJB has encountered a fatal error and cannot be started: The Assembler encountered an unexpected error while attempting to build the container system.
java.lang.reflect.GenericSignatureFormatError
at sun.reflect.generics.parser.SignatureParser.error(SignatureParser.java:103)
at sun.reflect.generics.parser.SignatureParser.parseFieldTypeSignature(SignatureParser.java:233)
at sun.reflect.generics.parser.SignatureParser.parseTypeSignature(SignatureParser.java:359)
at sun.reflect.generics.parser.SignatureParser.parseTypeSig(SignatureParser.java:157)
at sun.reflect.annotation.AnnotationParser.parseSig(AnnotationParser.java:367)
at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:181)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
at java.lang.reflect.Method.declaredAnnotations(Method.java:695)
at java.lang.reflect.Method.getDeclaredAnnotations(Method.java:688)
at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:175)
at org.apache.xbean.finder.AbstractFinder$Annotatable.<init>(AbstractFinder.java:301)
at org.apache.xbean.finder.AbstractFinder$MethodInfo.<init>(AbstractFinder.java:433)
at org.apache.xbean.finder.ClassFinder.<init>(ClassFinder.java:150)
at org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.createInheritedClassFinder(AnnotationDeployer.java:3591)
at org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.deploy(AnnotationDeployer.java:1074)
at org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.deploy(AnnotationDeployer.java:688)
at org.apache.openejb.config.AnnotationDeployer.deploy(AnnotationDeployer.java:236)
at org.apache.openejb.config.ConfigurationFactory$Chain.deploy(ConfigurationFactory.java:259)
at org.apache.openejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:660)
at org.apache.openejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:618)
at org.apache.openejb.config.ConfigurationFactory.getOpenEjbConfiguration(ConfigurationFactory.java:381)
at org.apache.openejb.assembler.classic.Assembler.getOpenEjbConfiguration(Assembler.java:303)
at org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:282)
at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:130)
at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:63)
at org.apache.openejb.OpenEJB.init(OpenEJB.java:276)
at org.apache.openejb.OpenEJB.init(OpenEJB.java:255)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36)
at org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:71)
at org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:53)
at org.apache.openejb.client.LocalInitialContextFactory.getInitialContext(LocalInitialContextFactory.java:42)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.<init>(InitialContext.java:197)
at test.EJBBridge.initContext(EJBBridge.java:35)
at test.EJBBridge.<clinit>(EJBBridge.java:13)
at test.ejb.InheritsEJBTest.helloTest(InheritsEJBTest.java:14)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:518)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1052)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:879)
I remember seeing in Cobertura's svn logs that at some point they moved to using ASM 3.0 to perform their bytecode manipulation, not sure if that might be the culprit.
Anybody have any ideas on how to get these two to play nicely?
Thanks,
Jim
精彩评论