【问题标题】:CDI Query Module in weblogic 12c (12.1.3)weblogic 12c (12.1.3) 中的 CDI 查询模块
【发布时间】:2014-09-24 06:50:04
【问题描述】:

我正在开发一个要部署在 weblogic 12 中的应用程序,我想在我的 Dao 的 https://ctpconsulting.github.io/query/1.0.0.Alpha5/index.html 中使用 CDI 查询模块

但是 cdi-query-imple 依赖于solder-api 和solder-impl 3.1.0.Final,当我尝试在应用服务器中部署应用程序时,我得到以下由 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 查询模块?

提前致谢

【问题讨论】:

    标签: java weblogic cdi


    【解决方案1】:

    显然错误是不言自明的。焊接模块已经定义了一个拦截器并用'@AroundInvoke'注释了一个方法,其签名不符合规范

    (拦截器规范第 2.5 节)

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

    • 无效(InvocationContext)
    • 对象(InvocationContext)抛出异常

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2016-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多