Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @资源不注入环境条目_Java_Xml_Environment Variables_Java Ee 6_Code Injection - Fatal编程技术网

Java @资源不注入环境条目

Java @资源不注入环境条目,java,xml,environment-variables,java-ee-6,code-injection,Java,Xml,Environment Variables,Java Ee 6,Code Injection,我最近看到了一篇用JavaEE解释的帖子,与其使用.properites文件,不如在web.xml文件中指定配置属性,然后将它们注入到需要属性的类中 这是我的Web.xml <env-entry> <env-entry-name>pacakageName.ClassName/number</env-entry-name> <env-entry-type>java.lang.Integer</env-entry-type>

我最近看到了一篇用JavaEE解释的帖子,与其使用
.properites
文件,不如在
web.xml
文件中指定配置属性,然后将它们注入到需要属性的类中

这是我的
Web.xml

 <env-entry> 
   <env-entry-name>pacakageName.ClassName/number</env-entry-name> 
   <env-entry-type>java.lang.Integer</env-entry-type> 
   <env-entry-value>123</env-entry-value> 
 </env-entry>

 <env-entry> 
   <env-entry-name>country</env-entry-name> 
   <env-entry-type>java.lang.String</env-entry-type> 
   <env-entry-value>Spain</env-entry-value> 
 </env-entry>
  @Path("loginService")
  public class LoginService{
    @Resource() int number;
     //constructor and other methods
   }
这是可行的,但是当我尝试使用
@Resources
的新方法并注入值时,值不是从
web.xml

 <env-entry> 
   <env-entry-name>pacakageName.ClassName/number</env-entry-name> 
   <env-entry-type>java.lang.Integer</env-entry-type> 
   <env-entry-value>123</env-entry-value> 
 </env-entry>

 <env-entry> 
   <env-entry-name>country</env-entry-name> 
   <env-entry-type>java.lang.String</env-entry-type> 
   <env-entry-value>Spain</env-entry-value> 
 </env-entry>
  @Path("loginService")
  public class LoginService{
    @Resource() int number;
     //constructor and other methods
   }
我正在使用Tomcat 7…谁能帮我找出我做错了什么

我参考了这份文件:
您的类不是支持
@Resource
注释的类。它需要是一个JavaEE组件,比如EJB


这是因为容器是注入资源的容器,它只将组件视为有效的注入目标。同样出于这个原因,必须在容器启动之前定义资源,因此您不能在运行时将资源注入JNDI。

您的类不是支持
@resource
注释的类。它需要是一个JavaEE组件,比如EJB


这是因为容器是注入资源的容器,它只将组件视为有效的注入目标。同样出于这个原因,必须在容器启动之前定义资源,因此不能在运行时将资源注入JNDI。

确保WEB-INF文件夹中有
beans.xml
文件(这将启用CDI),然后将变量更改为
java.lang.Integer
,如下所示:

@Resource(name="pacakageName.ClassName/number") 
Integer number;

@Resource(name="country") 
String country;

它在支持CDI的Java EE 6容器中运行良好,例如,请确保WEB-INF文件夹中有
beans.xml
文件(这将启用CDI),然后将变量更改为
Java.lang.Integer
,如下所示:

@Resource(name="pacakageName.ClassName/number") 
Integer number;

@Resource(name="country") 
String country;

它在支持CDI的JavaEE6容器中运行良好,例如

显示您在中使用的
@Resource
类的代码。您的“packagename.ClassName”是如何注释的?可能是以错误的方式实例化了它。@italo我没有对类进行注释,是吗?@Kayaman我在使用资源的地方发布了类……我将它注入到字段中,并在方法中的某个地方使用它显示您在中使用
@Resource
的类的代码。您的“packagename.ClassName”是如何注释的?可能是以错误的方式实例化了它。@italo我还没有注释该类,是吗?@Kayaman我将该类发布到我使用资源的位置……我将其注入字段中,并在method@Kayaman..Thanks答案是,我们不能在servlet中执行吗?它由tomcat@user3897395好,您的类似乎不是一个servlet。它没有扩展HttpServlet。我知道,我只是问了个问题,我会在servlet上试用。@user3897395它在servlet上有效吗?从逻辑上讲,它应该是。@Kayaman.谢谢你的回答,但是我们不能在servlet中完成吗?它由tomcat@user3897395嗯,您的类似乎不是一个servlet。它没有扩展HttpServlet。我知道,我只是问了个问题,我会在servlet上试用。@user3897395它在servlet上有效吗?从逻辑上讲,它应该这样做。