无法从其他项目中注入无状态豆

时间:2015-08-18 00:28:21

标签: java maven dependency-injection cdi java-ee-7

我遇到的问题是,当我尝试从我的主项目中的jar中打包Maven Project A中注入Bean时。

带控制器的主项目:

package com.swapIt.register.controller;

import java.io.Serializable;

import javax.inject.Inject;
import javax.inject.Named;

import com.svSwapIt.JPA.com.baustein.reg.ControllerHalloWorld;
import com.swapIt.register.Model.Person;
import javax.enterprise.context.SessionScoped;

@Named
@SessionScoped
public class ControllerRegistration implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    private Person person;
    @Inject
    private ControllerHalloWorld rm;;

    public Person getPerson(){
        if(this.person == null){
            this.person = new Person();
        }
        return this.person;
    }

    public void setPerson(Person person){
        this.person = person;
    }

        public String nav2Danke(){

        return "/contentFrame/registerDanke.xhtml";
    }

    public String getGreeting(){
        return rm.getGreeiting();
    }
}

项目A(在罐子里):

package com.svSwapIt.JPA.com.baustein.reg;
import javax.ejb.Stateless;

@Stateless
public class ControllerHalloWorld {

    public String getGreeiting() {
        return "Hallo World";
    }

}

我收到错误消息:

目标无法访问,标识符' controllerRegistration'解决为null。

我知道它是因为@Inject Annotation。可以请有人帮助我。我几乎尝试了一切。有什么特别的东西我必须考虑然后从另一个项目中注入bean除了在主项目中添加依赖项吗?

My Beans XML:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://xmlns.jcp.org/xml/ns/javaee
        http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd" bean-discovery-mode="all">
</beans>

由于

1 个答案:

答案 0 :(得分:0)

在您的类ControllerHalloWorld中,您可以添加anotation @LocalBean 在你的@inject中你可以使用@EJB Anotation。只是一种消化,我不确定它是否已经失效,但试试它是免费的。 希望它有效。