weblogic 12c中的CDI查询模块(12.1.3)

时间:2014-09-24 06:50:05

标签: java weblogic cdi

我正在开发一个要在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查询模块?

提前致谢

2 个答案:

答案 0 :(得分:0)

显然,错误是不言自明的。焊接模块已经定义了一个拦截器,并注释了一个带有&#39; @ AroundInvoke&#39;其签名不符合规范

  

(拦截器规格第2.5节)

     

拦截器类上定义的生命周期回调拦截器方法   必须具有以下签名之一:

     
      
  • void(InvocationContext)
  •   
  • Object(InvocationContext)抛出异常
  •   

答案 1 :(得分:0)

CTP的查询模块已移至Apache DeltaSpike。请使用适用于WebLogic的Apache DeltaSpike版本。