开发者

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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜