Tag: 焊接

焊接使用src / test / META-INF / beans.xml中的替代生产者

我试图通过在src/test/resources/META-INF提供不同的beans.xml来使用Weld SE 2.3.0.Final在测试期间交换注入依赖项的替代实现 它总是似乎使用beans.xml的主要版本,我不知道为什么。 首先,这里是支持class Engine.java public interface Engine { void start(); void stop(); } DefaultEngine.java @Vetoed public class DefaultEngine implements Engine { public void start() { System.out.println(“Cough cough vrummmmm”); } public void stop() { System.out.println(“Phhhut clank”); } } Car.java public class Car { @Inject private Engine engine; public void startCar() { engine.start(); } public […]

无状态EJB实现接口注入失败

Wildfly 8.2.0 我有一个Stateless EJB和一个接口。 @Local @Stateless public class Bean implements IBean{ … } @Local public interface IBean { … } 但我得到一个WELD错误。 如果Bean没有实现接口,则没有错误。 根据https://stackoverflow.com/a/13988450/2023524和https://blogs.oracle.com/arungupta/entry/what_s_new_in_ejb ,应该没有错误。 错误: WELD-001408: Unsatisfied dependencies for type Bean with qualifiers @Default at injection point [BackedAnnotatedField] @Inject private mypackage.anotherBean.bean 更新 :我尝试了所有可能的Local组合,但它没有帮助。 只有删除接口才会出错。 @Stateless public class Bean implements IBean{ … } @Local public interface […]

CDI制作人和注射

我想在我的应用程序中使用一个生产者,但我陷入了困境,我正在尝试注入bean。 我得到了着名的WELD-001409错误。 请减轻我对cdi制作人的理解。 这是我的界面: @Named public interface MessageSender { void sendMessage(); } 豆子: public class EmailMessageSender implements MessageSender { @Override public void sendMessage() { System.out.println(“Sending email message”); } } 和制片人: @SessionScoped public class MessageSenderFactory implements Serializable { private static final long serialVersionUID = 5269302440619391616L; @Produces public MessageSender getMessageSender() { return new EmailMessageSender(); } } 现在我正在注入豆子: […]

CDI部署失败:WELD-001414 Bean名称不明确

我有一个应用程序,它有多个模块和各种依赖项。 当我在Glassfish 4上部署应用程序时,我收到错误: org.jboss.weld.exceptions.DeploymentException: WELD-001414 Bean name is ambiguous. Name JerseyClassAnalyzer resolves to beans: [Managed Bean [class org.glassfish.jersey.internal.inject.JerseyClassAnalyzer] with qualifiers [@Default @Named @Any], Managed Bean [class org.glassfish.jersey.internal.inject.JerseyClassAnalyzer] with qualifiers [@Default @Named @Any]] 可能是什么原因? 我已经看到了关于这个的主题,解决方案是编辑注释,但这不是我的EJB ,只是一个依赖项。 我怎样才能避免这种exception? 我正在使用Java EE 6与JDK 1.7和Glassfish 4.0。

如何以静态方法以编程方式将Java CDI托管bean注入局部变量

如何以静态方法以编程方式将Java CDI 1.1+托管bean注入局部变量?