我正在开发一个要在weblogic 12中部署的应用程序,我想在我的Dao https://ctpconsulting.github.io/query/1.0.0.Alpha5/index.html
中使用CDI查询模块但是cdi-query-implement依赖于solder-api和solder-impl 3.1.0.Final,当我尝试在app服务器中部署应用程序时,我得到了jboss类引起的以下异常:
weblogic.ejb.container.compliance.ComplianceException: AroundInvoke method passExceptionsToSolderCatch in class org.jboss.solder.exception.control.ExceptionHandledInterceptor must have the signature: 'Object <METHOD(InvocationContext)> throws Exception'
at weblogic.ejb.container.compliance.BusinessMethodInterceptorChecker.validateAroundInvokeOrTimeoutMethod(BusinessMethodInterceptorChecker.java:154)
at weblogic.ejb.container.compliance.BusinessMethodInterceptorChecker.checkAroundInvokeOrTimeoutMethods(BusinessMethodInterceptorChecker.java:70)
at weblogic.ejb.container.compliance.InterceptorChecker.checkAroundInvokeMethods(InterceptorChecker.java:61)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at weblogic.ejb.container.compliance.EJBComplianceChecker.check(EJBComplianceChecker.java:100)
at weblogic.ejb.container.compliance.EJBComplianceChecker.checkDeploymentInfo(EJBComplianceChecker.java:84)
at weblogic.ejb.container.ejbc.EJBCompiler.doCompile(EJBCompiler.java:172)
at weblogic.ejb.container.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:346)
at weblogic.ejb.container.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:314)
at weblogic.ejb.container.deployer.EJBDeployer.compileJar(EJBDeployer.java:429)
at weblogic.ejb.container.deployer.EJBDeployer.compileIfNecessary(EJBDeployer.java:355)
at weblogic.ejb.container.deployer.EJBDeployer.prepare(EJBDeployer.java:723)
at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:439)
at weblogic.application.internal.ExtensibleModuleWrapper$PrepareStateChange.next(ExtensibleModuleWrapper.java:295)
at weblogic.application.internal.ExtensibleModuleWrapper$PrepareStateChange.next(ExtensibleModuleWrapper.java:285)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42)
at weblogic.application.internal.ExtensibleModuleWrapper.prepare(ExtensibleModuleWrapper.java:109)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:100)
at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:175)
at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:170)
at weblogic.application.utils.StateMachineDriver$ParallelChange.run(StateMachineDriver.java:80)
at weblogic.work.ContextWrap.run(ContextWrap.java:40)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:548)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)
是否有机会在weblogic 12中运行CDI查询模块?
提前致谢
答案 0 :(得分:0)
显然,错误是不言自明的。焊接模块已经定义了一个拦截器,并注释了一个带有&#39; @ AroundInvoke&#39;其签名不符合规范
(拦截器规格第2.5节)
拦截器类上定义的生命周期回调拦截器方法 必须具有以下签名之一:
- void(InvocationContext)
- Object(InvocationContext)抛出异常
答案 1 :(得分:0)
CTP的查询模块已移至Apache DeltaSpike。请使用适用于WebLogic的Apache DeltaSpike版本。