如何解决范围类型javax.enterprise.context.SessionScoped问题没有活动上下文?
问题描述:
我遇到了CDI SessionScoped Bean的问题。我有一个扩展抽象控制器的控制器。当我试图启动应用程序时,出现错误如何解决范围类型javax.enterprise.context.SessionScoped问题没有活动上下文?
WELD-001303:对于范围类型 javax.enterprise.context.SessionScoped没有有效的上下文。
@Named
@SessionScoped
public class UserController extends CatalogController implements Serializable {
private static final long serialVersionUID = 5818789812426336142L;
public UserController() {
super(User.class);
}}
public abstract class CatalogController<T> implements Serializable {
private static final long serialVersionUID = 2354059049000471596L;
@Inject
private CatalogService catalogService;
private Class<T> itemType;
private Catalog newItem;
private Catalog selectedItem;
private List<Catalog> items;
public CatalogController() {
}
public CatalogController(Class<T> itemType) {
this.itemType = itemType;
newItemInstance();
}
@PostConstruct
public void init() {
//items = catalogService.getAll();
}
在这里,我的服务类。
public class CatalogService extends DataAccessService<Catalog> implements Serializable {
private static final long serialVersionUID = 5294530753916464146L;
public CatalogService() {
super(Catalog.class);
}
}
答
我发现这个错误和glassfish服务器之间的关系。重新启动服务器后,这个错误dissapeare但是当我试图改变代码例如在UserController的错误再次发生。
我在NetBeans中的Java EE项目中进行更改时,有时会遇到与使用RequestScoped时相同的错误。重新启动服务器也解决了这个问题,但是如果我清理并构建项目并再次运行,它也可以工作。 –