我是Java EE新手。我想测试JSF,因此制作了一个简单的程序,但无法部署它。我收到以下错误消息:
cannot Deploy onlineshop-war
deploy is failing=Error occurred during deployment: Exception while loading the app : CDI deployment failure:WELD-001408: Unsatisfied dependencies for type Customer with qualifiers @Default
at injection point [BackedAnnotatedField] @Inject private de.java2enterprise.onlineshop.RegisterController.customer
at de.java2enterprise.onlineshop.RegisterController.customer(RegisterController.java:0)
. Please see server.log for more details.
我的代码如下:Customer.java:
package de.java2enterprise.onlineshop.model;
public class Customer {
private String email;
private String password;
}
注册Controller.java:
package de.java2enterprise.onlineshop;
import java.io.Serializable;
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
import javax.inject.Inject;
import de.java2enterprise.onlineshop.model.*;
@Named
@RequestScoped
public class RegisterController {
private static final long serialVersionUID = 1L;
@Inject
private Customer customer;
public Customer getCustomer() {
return customer;
}
public void setCustomer(Customer customer) {
this.customer = customer;
}
public String persist() {
return "/index.xhtml";
}
}
为了编译它,我必须包含CDIAPI。jar作为外部库。有人能帮我吗?提前谢谢大家。
我也有同样的问题,但与注释无关。在我的容器(Jboss EAP 6.3)中为bean编制索引时出现了这个问题。我的一个bean无法被索引,因为它使用了Java 8的功能,我在部署时收到了一个小警告:
警告[org.jboss.as.server.deployment]。。。无法索引类。。。JAVAlang.IllegalStateException:未知标记!pos=20 poolCount=133
然后在注入点我得到了错误:
类型的未满足依赖项。。。带限定符@Default
解决方案是更新Java注释索引。下载新版本的jandex(jandex-1.2.3.Final或更新版本),然后将其放入
JBOSS_HOME\modules\system\layers\base\org\JBOSS\jandex\main,然后更新对模块中新文件的引用。xml
注:EAP 6.4。x已经修好了
这也是一件好事,以确保你有正确的进口
我有这样的问题,我发现豆子在使用
javax.faces.view.ViewScoped;
^
而不是
javax.faces.bean.ViewScoped;
^
CDI必须将您的Customer
类作为bean来发现。为此,您有两种选择:
>
在上面放一个bean定义注解。因为@Model
是一个原型,所以它能起到作用。像@命名
这样的限定符不是bean定义注解,这是它不起作用的原因
通过添加bean,将bean归档中的bean发现模式从默认的“annotated”更改为“all”。jar中的xml文件。
请记住,@Named只有一个用法:向UI公开bean。其他用法是用于不好的实践或与遗留框架的兼容性。
在Netbeans上部署到Glassfish时,我遇到了以下错误。这是我第一次尝试CDI。我读了所有关于这个问题的帖子,但毫无帮助。 日志: 我的程序代码: 泰斯特普尔战争 指数xhtml 雇员控制员。JAVA 员工EJB 雇员 桌子 豆。xml 这是我部署时自动生成的源代码 雇员。JAVA 有什么想法吗?
我正在用Arquillian创建我的第一个EJB测试,并且我面临着一个似乎很常见的问题,考虑到有很多相同问题的帖子。但在尝试了所有的建议后,我还是找不到一个解决办法。我在一个野兽14号上运行它。 EJB管理器 BEAN类 arquillian.xml 你知道我做错了什么吗?谢谢
我在JBoss上部署我的Java应用程序时遇到了一个愚蠢的问题。在我使用接口类更改源代码之前,一切都很好。所以这是我的问题: ... 在JBoss 7.1上部署时会出现以下错误: 10:05:34838错误[org.jboss.msc.service.fail](msc服务线程1-6)MSC00001:无法启动服务jboss。部署。单元“mdk-exchange-1.1.0.战争”。WeldSer
我在使用Arquillian测试JavaEE8应用程序时遇到了这个问题: WELD-001408:类型记录器与限定符@默认在注入点[BackedAnNotatedField]@注入私有academy.learnprogramming.services.TodoService的未满足依赖项。LOG 我对EntityManager也有同样的错误 以下是我的课程: TodoService。类(我必须测试
我有豆子如下所示。 我得到的错误就像 我做错什么了吗。
我确实遇到了与这里所解释的相同的问题:JBOSS7.1.3:@EJB工作而@Inject失败,这可能是相同的设置(Wildfly 8.0)。 尽管有一个带有producer的资源类,但我不能注入一个Logger实例。Neiter在控制器中,也不在EJB中。“问题1”如果我错了,请纠正我,我应该可以将它们注入@model bean和注有@stateless(EJB)的bean中,不是吗? 下面是我的