1

我是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。如何解决这个问题?

4

1 回答 1

0

尝试以下方法:

GateActionIntf gateAction = (GateActionImpl) Component.getInstance(GateActionImpl.class, true); 
于 2014-04-25T15:45:31.210 回答