我遇到的问题是,当我尝试从我的主项目中的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>
由于
答案 0 :(得分:0)
在您的类ControllerHalloWorld中,您可以添加anotation @LocalBean 在你的@inject中你可以使用@EJB Anotation。只是一种消化,我不确定它是否已经失效,但试试它是免费的。 希望它有效。