When attempting to pre-compile a MDB with appc the following error occurs:
[java][java] <Mar 9, 2012 10:07:20 AM EST> <Info> <J2EE> <BEA-160186> <Compiling EAR module "mdb_test.jar">
[java] 011113 NestedException Message is :011113
[java] at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl.(MessageDrivenBeanInfoImpl.java:739)
[java] at weblogic.ejb.container.deployer.BeanInfoFactory.createBeanInfoImpl(BeanInfoFactory.java:36)
[java] at weblogic.ejb.container.deployer.MBeanDeploymentInfoImpl.initializeBeanInfos(MBeanDeploymentInfoImpl.java:546)
[java] at weblogic.ejb.container.deployer.MBeanDeploymentInfoImpl.(MBeanDeploymentInfoImpl.java:242)
[java] at weblogic.ejb.container.ejbc.EJBCompiler.getStandAloneDeploymentInfo(EJBCompiler.java:1030)
[java] at weblogic.ejb.container.ejbc.EJBCompiler.setupEJB(EJBCompiler.java:131)
[java] at weblogic.ejb.container.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:370)
[java] at weblogic.ejb.container.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:336)
[java] at weblogic.ejb.tools.EJBModule.compileEJB(EJBModule.java:541)
[java] at weblogic.ejb.tools.EJBModule.compile(EJBModule.java:162)
[java] at weblogic.application.compiler.ToolsModuleWrapper.compile(ToolsModuleWrapper.java:107)
[java] at weblogic.application.compiler.flow.CompileModuleFlow.compileModules(CompileModuleFlow.java:133)
[java] at weblogic.application.compiler.flow.CompileModuleFlow.compile(CompileModuleFlow.java:59)
[java] at weblogic.application.compiler.FlowDriver$FlowStateChange.next(FlowDriver.java:70)
[java] at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:35)
[java] at weblogic.application.compiler.FlowDriver.nextState(FlowDriver.java:37)
[java] at weblogic.application.compiler.FlowDriver.run(FlowDriver.java:27)
[java] at weblogic.application.compiler.EARCompiler.compile(EARCompiler.java:53)
[java] at weblogic.application.compiler.flow.AppCompilerFlow.compileInput(AppCompilerFlow.java:101)
[java] at weblogic.application.compiler.flow.AppCompilerFlow.compile(AppCompilerFlow.java:35)
[java] at weblogic.application.compiler.FlowDriver$FlowStateChange.next(FlowDriver.java:70)
[java] at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:35)
[java] at weblogic.application.compiler.FlowDriver.nextState(FlowDriver.java:37)
[java] at weblogic.application.compiler.FlowDriver.run(FlowDriver.java:27)
[java] at weblogic.application.compiler.Appc.runBody(Appc.java:203)
[java] at weblogic.utils.compiler.Tool.run(Tool.java:158)
[java] at weblogic.utils.compiler.Tool.run(Tool.java:115)
[java] at weblogic.application.compiler.Appc.main(Appc.java:263)
[java] at weblogic.appc.main(appc.java:14)
[java] 011113
Cause
Customer has upgraded schema header Deployment Descriptor to EJB 3.1, provided by
DDConverter.
however the EJB still is 2.1 therefore it is not good practice to give the 3.1 schema.
Solution
1.
Change the
ejb-jar.xml Deployment Descriptor Schema to:
<ejb-jar < xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee">xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd" version="2.1">
then recompile the EJB again.
2.
A similar behave has been found and solved in bug
13984579