【问题标题】:Class cast exception on stateful ejb有状态 ejb 上的类强制转换异常
【发布时间】:2011-06-23 07:16:51
【问题描述】:

由于某种奇怪的原因,我得到了以下异常。

2011-02-08 09:53:30,667 ERROR [STDERR] (QuartzScheduler_Worker-9) java.lang.ClassCastException: org.javassist.tmp.java.lang.Object_$$_javassist_seam_7 cannot be cast to no.kommuneforlaget.fagsystem.saksapp.service.report.SystemlogListener
2011-02-08 09:53:30,668 ERROR [STDERR] (QuartzScheduler_Worker-9)       at no.kommuneforlaget.fagsystem.saksapp.jobs.ESBLogListener.checkESBEvents(ESBLogListener.java:71)
2011-02-08 09:53:30,668 ERROR [STDERR] (QuartzScheduler_Worker-9)       at no.kommuneforlaget.fagsystem.saksapp.jobs.ESBLogListener.scheduler(ESBLogListener.java:119)
2011-02-08 09:53:30,668 ERROR [STDERR] (QuartzScheduler_Worker-9)       at sun.reflect.GeneratedMethodAccessor466.invoke(Unknown Source)
2011-02-08 09:53:30,668 ERROR [STDERR] (QuartzScheduler_Worker-9)       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
2

我知道它不应该是类转换异常,因为它是正确的类。

代码是:

SystemlogListener systemlogListener = (SystemlogListener) Component.getInstance("systemlogListener", ScopeType.SESSION, true);

班级是

@Name("systemlogListener")
@Scope(ScopeType.SESSION)
@AutoCreate
@Stateful
@TransactionManagement(TransactionManagementType.CONTAINER) //default
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public class SystemlogListener implements SystemlogListenerLocal, Serializable {

谁能发现我犯的错误?

【问题讨论】:

    标签: seam ejb stateful stateful-session-bean


    【解决方案1】:

    我假设 Component.getInstance(...) 返回一个注入的类。注入的实现不必属于您的实现类,而只需属于您的本地/远程接口。 因此,您可以转换为您的接口 SystemlogListenerLocal,但不能转换为您的实现 SystemlogListener。

    原因是您的 AppServer 的实现可以使用例如代理并将方法委托给您的实际实现。

    【讨论】:

    • 当然可以。我必须一直使用界面。我不敢相信我忘记了:)
    • 您能分享一下工作代码示例吗?我遇到了同样的异常,我有一个类和接口......但是我应该如何转换 myClass 来获取实例......
    • 我觉得应该是:myBeanInterface mb = (myBeanInterface) Component.getInstance("myBeanName", true);
    猜你喜欢
    • 2013-09-05
    • 1970-01-01
    • 2011-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多