如何解决范围类型javax.enterprise.context.SessionScoped问题没有活动上下文?

如何解决范围类型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的错误再次发生。

+0

我在NetBeans中的Java EE项目中进行更改时,有时会遇到与使用RequestScoped时相同的错误。重新启动服务器也解决了这个问题,但是如果我清理并构建项目并再次运行,它也可以工作。 –