Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java EJB,can';无法在Json响应方法中获取注入_Java_Ejb - Fatal编程技术网

Java EJB,can';无法在Json响应方法中获取注入

Java EJB,can';无法在Json响应方法中获取注入,java,ejb,Java,Ejb,我的EJB有问题: public class EntryResponseBuilder extends BaseResponseBuilder { @EJB private ApplicationCustomerCache applicationCustomerCache; //null 我在类中有类似的东西,它返回一个JSON响应 @Singleton @Startup public class ApplicationCustomerCache { @EJB Customer

我的EJB有问题:

public class EntryResponseBuilder extends BaseResponseBuilder {
@EJB
private ApplicationCustomerCache applicationCustomerCache; //null
我在类中有类似的东西,它返回一个JSON响应

@Singleton
@Startup
public class ApplicationCustomerCache {
    @EJB
    CustomerDao customerDao;
    private Map<Integer, Customer> customerMap;
    private Map<Integer, List<Customer>> applicationToCustomersMap;
    private static Logger log = Logger.getLogger(ApplicationCustomerCache.class);

    @PostConstruct
    public void initialize() {
        try {
            get();
        } catch (Exception e) {
            log.error("ApplicationCustomerCache.init()", e);
        }
    }

    private void get() throws SQLException {
@Singleton
@启动
公共类ApplicationCustomerCache{
@EJB
顾客道顾客道;
私有地图定制地图;
私有地图应用程序CustomerMap;
私有静态记录器log=Logger.getLogger(ApplicationCustomerCache.class);
@施工后
公共无效初始化(){
试一试{
get();
}捕获(例外e){
log.error(“ApplicationCustomerCache.init()”,e);
}
}
私有void get()引发SQLException{

它工作正常,只是当我尝试在
EntryResponseBuilder
中进行注入时,它是空的。之前有一个函数,它是inject,我在那里有
@Stateless
类。我在Google中搜索过,但找不到任何解决方案。

您在这里处理两个问题:

  • 您正试图在POJO上注入一个bean实例,该实例不受容器管理
  • 您遵循的EJB规范是什么
  • 对于这两个问题,我认为以下答案可以帮助您:


      • 您在这里处理两个问题:

      • 您正试图在POJO上注入一个bean实例,该实例不受容器管理
      • 您遵循的EJB规范是什么
      • 对于这两个问题,我认为以下答案可以帮助您:


        我用
        InitialContext()解决了这个问题。


        我通过使用
        InitialContext()


        你能告诉我你在哪里注入EntryResponseBuilder吗?我不这么做,我想我现在有问题,这个类不是由Conterner管理的。事实上,这可能是你的问题。你能告诉我你在哪里注入EntryResponseBuilder吗?我不这么做,我想我现在有问题,这个类不是由Conterner管理的这可能是你的问题。
        ApplicationCustomerCache applicationCustomerCache = (ApplicationCustomerCache) new InitialContext().lookup("java:comp/ApplicationCustomerCache");