gpt4 book ai didi

java - 字符串变量的资源注入(inject)返回null

转载 作者:行者123 更新时间:2023-12-01 13:40:12 25 4
gpt4 key购买 nike

我正在使用 @resource 注入(inject)文件目录字符串,该字符串的声明位于 application.xml 文件中,这是我的代码

<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:application="http://java.sun.com/xml/ns/javaee/application_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd"
id="Application_ID" version="6">

<display-name>Project_APP</display-name>

<module>
<ejb>Project_Dalayer.jar</ejb>
</module>
<module>
<web>
<web-uri>Project_UI.war</web-uri>
<context-root>Project_UI</context-root>
</web>
</module>

<env-entry>
<env-entry-name>java:app/env/logDirName</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/app/Project_Data/logs/</env-entry-value>
</env-entry>

dal层中的类

@Startup
@Singleton
public class LoggingManager{
@Resource(name = "java:app/env/logDirName")
private String logDirName;
}

此字符串logDirName返回null

最佳答案

EJB 3.1(最终)标准化了全局 JNDI 条目,并且您的 EJB 代码看起来不错,我认为失败的是 application.xml 上的配置。您的 env 条目应如下所示:

<env-entry>
<env-entry-name>logDirName</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/app/Project_Data/logs/</env-entry-value>
</env-entry>

即容器将由您在 java:app/env/下设置您的条目。

干杯

关于java - 字符串变量的资源注入(inject)返回null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20879485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com