gpt4 book ai didi

java - WAS 7.0.0.23 - MDB 中带有激活规范的默认拦截器会抛出 classcastException

转载 作者:行者123 更新时间:2023-12-01 04:41:14 27 4
gpt4 key购买 nike

我在 Websphere 中遇到了 MDB 拦截器的问题。我使用 ActivationSpec 为 MDB 配置了 defaultInterceptor,而不是 WAS 7.0.0.23 中的监听器端口。我收到 ClassCastException。相同的配置适用于 SessionBean。

<assembly-descriptor><interceptor-binding>
<ejb-name>*</ejb-name>
<interceptor-class>com.LoggingInterceptor</interceptor-class>
</interceptor-binding></assembly-descriptor>

异常:LocalExceptio E CNTR0019E:EJB 在调用方法“onMessage”期间引发意外(未声明)异常。异常数据:javax.ejb.EJBException:注入(inject)失败;嵌套异常是:java.lang.IllegalArgumentException:java.lang.ClassCastException

http://www-01.ibm.com/support/docview.wss?uid=swg1PM53989此链接表示,仅当我们使用监听器端口时才会出现此问题 - 但我们使用的是激活规范。

感谢您的帮助。

最佳答案

此错误消息很糟糕,但这意味着您有方法注入(inject),但(查找的)目标类型与代码中的类型不匹配。例如,如果您有:

@Resource
public void setQueue(QueueConnectionFactory qcf) { ... }

...但是您已经为此资源指定了指向数据源的绑定(bind),那么您将收到 ClassCastException。我建议删除所有注入(inject)(可能是从拦截器或其父类(super class)中删除,因为只有在添加它时才会出现错误),然后慢慢地重新添加它们,直到发现问题为止。

关于java - WAS 7.0.0.23 - MDB 中带有激活规范的默认拦截器会抛出 classcastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16485659/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com