我是Seam的新手。我正在使用休息服务,并且在我的一项休息服务中,我试图按组件获取实例,例如,
GateAction gateAction = (GateAction) Component.getInstance(GateAction.class, true);
所以有了这个我得到了错误 java.lang.IllegalStateException: No application context active
然后为了解决这个问题,我调用 Lifecycle.beginCall() 和 Lifecycle.endCall() 方法,如下所示,
Lifecycle.beginCall();
GateActionIntf gateAction = (GateActionIntf) Component.getInstance(GateActionImpl.class, true);
Lifecycle.endCall();
其中 GateActionIntf 是一个接口,GateActionImpl 是实现 GateActionIntf 的接缝组件。但现在我得到了 ClassCastException。
注意:在我的 Web 服务项目中,我没有任何基于 component.xml 和接缝的配置,我刚刚添加了 jboss-seam jar
在没有任何 component.xml 和接缝配置的情况下,是否有可能获得这样的实例?再次强调我正在获取实例,但类型转换会抛出 ClassCastException。如何解决这个问题?