我是CDI的新手。这是我的第一个例子,我正在尝试运行它。在互联网上搜索后,我编写了以下代码:我想要注入的类
public class Temp {
public Temp(){
}
public String getMe(){
return "something";
}
}
servlet
@WebServlet(name = "NewServlet", urlPatterns = {"/NewServlet"})
public class NewServlet extends HttpServlet {
@Inject
public Temp temp;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
out.println("<body>");
out.println("<h1> Here it is"+temp.getMe()+ "</h1>");
out.println("</body>");
}
}
...
我做错了什么?
WEB-INF
中不存在beans.xml
或文件需要将bean-discovery-mode=“annotated”
更改为bean-discovery-mode=“all”
。
<?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>
推荐值“annotated
”仅识别带注释的CDI
托管bean。没有任何注释的bean将被忽略。由于您的Temp
类不是CDI
bean,因此建议不适用于您的情况。
若要使用annotated
,请使用@RequestScoped对类进行注释:
// Import only this RequestScoped
import javax.enterprise.context.RequestScoped;
@RequestScoped
public class Temp {
public Temp() { }
public String getMe() {
return "something";
}
}
这个RequestScoped
将把Temp
类转换为CDI
bean,并与bean-discovery-mode=“annotated”
一起工作。
我确实遇到了与这里所解释的相同的问题:JBOSS7.1.3:@EJB工作而@Inject失败,这可能是相同的设置(Wildfly 8.0)。 尽管有一个带有producer的资源类,但我不能注入一个Logger实例。Neiter在控制器中,也不在EJB中。“问题1”如果我错了,请纠正我,我应该可以将它们注入@model bean和注有@stateless(EJB)的bean中,不是吗? 下面是我的
我正在尝试将两个独立的战争迁移到一个耳朵里。 运行在WebLogic 12.2.1上,所以Java EE 7(CDI 1.1和EJB 3.1)。 每个WAR都包含相同的JAR库,其中包含许多@Stateless EJB和@Named CDI托管bean: 我已经执行了几个必需的步骤: 将包含ejb和CDI托管bean的ejb-cdi.jar的打包类型更改为ejb 将ejb-cdi.jar配置为po
我有一个非常简单的测试: 我只想注入类型为的对象<代码>单一实体是一个单一的POJO: 之后,我执行。为了让Arquillian在Wildfly嵌入式实例中执行这些测试,我已经配置了测试: 这很简单,但是,我收到一个异常,告诉我无法解决: 原因:org。jboss。焊接例外。DeploymentException:WELD-001408:SingleEntity类型与限定符@Default的不满意
我有bean,它实现了两个接口(远程和本地)。我还添加了注释,用于使用无接口视图访问bean。 我使用的原因取自JBoss AS7快速入门示例: > WeatherDataBean具有: 资源具有:
我在JBoss上部署我的Java应用程序时遇到了一个愚蠢的问题。在我使用接口类更改源代码之前,一切都很好。所以这是我的问题: ... 在JBoss 7.1上部署时会出现以下错误: 10:05:34838错误[org.jboss.msc.service.fail](msc服务线程1-6)MSC00001:无法启动服务jboss。部署。单元“mdk-exchange-1.1.0.战争”。WeldSer
aliyun-oss bean创建失败 报错信息 代码片段 POM依赖如下 是OSSClient类中没有@Bean注解吗? 还是因为依赖版本冲突