由最新的Cobertura(svn rev 794)检测的EJB将无法加载。使用1.9.4.1配备的未检测的EJB和EJB可以很好地进行汇编和测试,所以我很确定它与Cobertura有关。
我正在尝试使用最新的Cobertura来利用ignoreTrivial和ignoreMethodAnnotation功能。
在容器启动期间记录以下内容:
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.classpath.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)
我记得在Cobertura的svn日志中看到他们在某些时候转向使用ASM 3.0来执行他们的字节码操作,不确定这可能是罪魁祸首。
有人对如何让这两个人玩得很好有任何想法吗?
谢谢,
吉姆