当前位置: 首页 > 知识库问答 >
问题:

在EJB及其依赖项中查找Jndi

楮乐邦
2023-03-14

我在WebSphere 8.5上html" target="_blank">部署了一个Java应用程序作为EAR。我试图弄清楚如何从ejb-jar.xml.(Noob到EJB)进行JNDI查找。我通常通过在WAR中添加条目来从WAR中进行JNDI条目查找web.xml.现在在ejb模块上工作,我发现我仍然可以在ejb bean[1]上进行JNDI查找。请看下面我的ejb-jar.xml:

<?xml version="1.0" encoding="UTF-8"?><ejb-jar id="ejb-jar_ID" version="2.1"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd">
<display-name>MyService-ejb</display-name>
<enterprise-beans>
    <message-driven id="MyServiceSyncOutboundCom">
        <ejb-name>MyServiceSyncOutboundcom</ejb-name>
        <ejb-class>
            com.company.MyService.sync.com.MyServiceSyncOutboundCom
        </ejb-class>
        <transaction-type>Container</transaction-type>
        <message-destination-type>
            javax.jms.Queue
        </message-destination-type>
        <env-entry>
             <env-entry-name>minBalance</env-entry-name>
             <env-entry-type>java.lang.Integer</env-entry-type>
             <env-entry-value>500</env-entry-value>
        </env-entry>
        <env-entry>
        <description></description>
             <env-entry-name>maxCreditBalance</env-entry-name>
             <env-entry-type>java.lang.Integer</env-entry-type>
             <env-entry-value>10000</env-entry-value>
        </env-entry>
    </message-driven>
</enterprise-beans>

< br >我的问题是:现在我没有web.xml,如何将这些条目放入我的类中?此外,如果ejb模块包含一个JAR依赖项,比如< code > my service-config . JAR 和一个< code>Configs类,我可以在那个类中检索这些条目,而不是我的消息驱动Bean吗?那么这如何改变< code>ejb-jar.xml文件呢?< br >[1]https://docs . Oracle . com/CD/e 16439 _ 01/doc . 1013/e 13981/servjndi 008 . htm

共有1个答案

顾骏祥
2023-03-14

ejb jar。xml文件与web对EJB的作用相同。xmlfile适用于servlet。注入EJB的XML语法与注入servlet的XML语法相同,但在EJB-jar中除外。xml它嵌套在企业bean中,而不仅仅是在模块级别。从你的例子来看,应该是这样的:

<env-entry>
    <env-entry-name>minBalance</env-entry-name>
    <env-entry-type>java.lang.Integer</env-entry-type>
    <env-entry-value>500</env-entry-value>
    <injection-target>
        <injection-target-class>com.company.MyService.sync.com.MyServiceSyncOutboundCom</injection-target-class>
        <injection-target-name>name of field or method</injection-target-name>
    </injection-target>
</env-entry>

您只能注入将由容器创建的类;例如,servlet是由Web容器创建的;EJB实例和拦截器由EJB容器创建。

您的Configs类似乎不是容器管理的类,因此不能作为注入的目标。我可以想出几个选项来继续注入:

1 - 在你的ejb罐子.xml,只需声明它是一个单一的豆子;然后将您的嫉妒输入值注入其中。然后,您可以将配置单例 bean 注入到其他 Bean 中。尽管可能是非标准的 ejb-jar.xml可以将应用程序类路径上的任何类声明为 EJB。

2-将Confg声明为CDI托管bean并使用@Inject注释。CDI没有像web.xmlejb-jar.xml这样的东西,因此在使用CDI时必须使用注释。

 类似资料:
  • 本文向大家介绍在Python中查找Pandas的版本及其依赖项,包括了在Python中查找Pandas的版本及其依赖项的使用技巧和注意事项,需要的朋友参考一下 Pandas是使用Python进行数据分析的重要软件包。熊猫有不同的版本。由于某些版本不匹配,可能会产生一些问题。因此,我们需要找到熊猫的版本号。使用以下代码,我们可以轻松看到它们。 我们可以使用如下命令来获取版本- 示例 我们还可以使用以

  • 问题内容: 我正在尝试获取Java类中的所有依赖关系,包括用于泛型参数化和局部变量类型的类。到目前为止,我发现的最佳框架是apache bcel。使用它,我可以轻松地从字节码中找到所有字段,方法参数和局部变量。基本上,除了泛型和局部变量类型以外的所有内容。例如,在第1行中,我只能使用bcel中的方法找到一个依赖项- ArrayList。它无法检测到List接口和Point类。不幸的是,我也尝试了t

  • 下面是我的pom.xml文件 http://maven.apache.org/xsd/maven-4.0.0.xsd“>4.0.0

  • 我正在尝试创建一个带有Wildfly和数据库连接的EJB Web项目,以持久化我的类“article”。但当我启动我的应用程序时,我得到了错误 包装服务; ArticleDaoImpl

  • 使用STS点击pom.xml文件时,我可以查看这些选项卡 如何使用intelliJ IDEA,特别是依赖层次结构来查看所有这些选项卡?我试图通过右键单击pom来查看它。xml

  • 目前,在我的中有一条关于支持库不使用相同版本的警告。 所有com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。找到了27.0.1、23.4.0版本。示例包括com.android.support:animated-vector-drawable:27.0.1和com.android.support:cardview-v7:23.4.0 还有一个很好的方