在Tomcat 7中使用@produce进行依赖注入[未找到注入对象]

时间:2014-08-19 14:44:42

标签: java dependency-injection java-ee-6 cdi

之前我问过这个问题,但是我从之前的代码做了一些重大更改。我正在尝试使用Java EE 6中的@Inject注释在web-app中注入一个对象。我正在使用@ Produce,我正在使用@ Qualifier。我在Tomcat 7中运行它,我读到它不支持CDI,因为它主要是一个servlet容器而不是一个完整的Java EE容器,所以我尝试将Weld添加到其中。

使用@Inject

注入的类
@Path("login")
public class Login{

@Inject
@Config
  private String name;
 //do somthing with String name
 }

我的制作人类

 import javax.enterprise.inject.Produces;
 public class ConfigurationFactory {

  @Produces @Config
   public String getName() {
    return "XYZ";
   }
}

我使用了限定符

@Target( { TYPE, METHOD, PARAMETER, FIELD })
@Retention(RUNTIME)
@Qualifier
public @interface Config {
}

我在stackoverflow和外部材料以及Java EE 6规范中阅读了很多文章。我遵循这个结构但我仍然得到这个错误

org.glassfish.hk2.api.UnsatisfiedDependencyException: There was no object available for injection at Injectee

由于tomcat不支持CDI,我使用此POM依赖性添加了焊接 这是我的Pom.xml

 <dependency>
   <groupId>org.jboss.weld.servlet</groupId>
   <artifactId>weld-servlet</artifactId>
   <version>1.1.10.Final</version>
 </dependency>
 <dependency>
   <groupId>javax.servlet</groupId>
   <artifactId>javax.servlet-api</artifactId>
   <version>3.0.1</version>
   <scope>provided</scope>
 </dependency>

我在oracle站点中建议的WEB-INF目录下添加了一个空的Beans.xml文件。

我不确定为什么会这样,所以我尝试分析问题并在WEB-INF目录下添加了一个空的bean.xml文件,并且我尝试绑定资源文件&#34; ConfigurationFactory&#34;使用astractBinder。任何建议?

0 个答案:

没有答案