Java EJB JNDI Bean 查找失败

2023-12-19

我有以下结构:

  <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>
  <groupId>com.screening</groupId>
  <artifactId>screening</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>Screening Java Parent</name>

  <modules>
     <module>Module1</module>
     <module>Module2</module>
  </modules>

<dependencies>
<!-- multiple dependency here -->
<dependencies>

 <build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
                <compilerArguments>
                    <endorseddirs>${endorsed.dir}</endorseddirs>
                </compilerArguments>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-ejb-plugin</artifactId>
            <version>2.3</version>
            <configuration>
                <ejbVersion>3.1</ejbVersion>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.1</version>
            <executions>
                <execution>
                    <phase>validate</phase>
                    <goals>
                        <goal>copy</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${endorsed.dir}</outputDirectory>
                        <silent>true</silent>
                        <artifactItems>
                            <artifactItem>
                                <groupId>javax</groupId>
                                <artifactId>javaee-endorsed-api</artifactId>
                                <version>6.0</version>
                                <type>jar</type>
                            </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
</project>

上面是一个 pom,它是以下模块的父级:

  <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <parent>
        <groupId>com.screening</groupId>
        <artifactId>screening</artifactId>
         <version>1.0-SNAPSHOT</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.screening</groupId>
    <artifactId>module1</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>ejb</packaging>

    <name>Module1</name>
</project>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <parent>
        <groupId>com.screening</groupId>
        <artifactId>screening</artifactId>
         <version>1.0-SNAPSHOT</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.screening</groupId>
    <artifactId>module2</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>ejb</packaging>

    <name>Module2</name>
</project>

我有一些无状态的 bean,例如:

@Stateless
@Local
public class ProcessorBean implements Processor {
     // implemented methods
}

我正在使用 Glassfish 的嵌入式 EJBContainer 进行单元测试。使用以下命令访问它们时:

Processor processor = (Processor) container.getContext().lookup(new String("java:global/classes/ProcessorBean!com.screening.processor.Processor");

它工作正常。问题是,当我将模块 2 作为模块 1 的一部分包含时,单元测试会失败并抛出以下异常:

javax.naming.NamingException: Lookup failed for 'java:global/classes/ProcessorBean! com.screening.processor.Processor' in SerialContext  [Root exception is javax.naming.NameNotFoundException: classes]
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:442)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at com.screening.processor.ProcessorBeanTest.setUpClass(ProcessorBeanTest.java:39)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:292)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray (ReflectionUtils.java:189)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
Caused by: javax.naming.NameNotFoundException: classes
at com.sun.enterprise.naming.impl.TransientContext.resolveContext(TransientContext.java:252)
at com.sun.enterprise.naming.impl.TransientContext.lookup(TransientContext.java:171)
at com.sun.enterprise.naming.impl.TransientContext.lookup(TransientContext.java:172)
at com.sun.enterprise.naming.impl.SerialContextProviderImpl.lookup (SerialContextProviderImpl.java:58)
at com.sun.enterprise.naming.impl.LocalSerialContextProviderImpl.lookup(LocalSerialContextProviderImpl.java:101)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:430)
... 25 more

查看 Apache Maven 确实生成的类。我不知道如何解决这个问题。只有当我将模块 2 作为模块 1 的一部分时,才会发生这种情况。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <parent>
        <groupId>com.screening</groupId>
        <artifactId>screening</artifactId>
         <version>1.0-SNAPSHOT</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.screening</groupId>
    <artifactId>module1</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>ejb</packaging>

    <name>Module1</name>

    <dependencies>
       <dependency> <!-- Taking this out it works -->
           <groupId>com.screening</groupId>
           <artifactId>module2</artifactId>
           <version>1.0-SNAPSHOT</version>
       </dependency>
   <dependencies>
 </project>

有任何想法吗?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java EJB JNDI Bean 查找失败 的相关文章

  • java本地时间格式不带年份

    我喜欢将本地时间格式格式化为不带年份的字符串 目前我可以显示包含年份的本地格式 java text DateFormat df java text DateFormat getDateInstance java text DateForma
  • Junit Mockito 测试一切

    我现在正在寻找更多时间但没有结果 请帮忙 这是我要测试的课程 public class DBSelectSchema extends Database private static final Logger LOG Logger getLo
  • 运行单个 Java 线程的双核 CPU 利用率[重复]

    这个问题在这里已经有答案了 可能的重复 多线程 Java 应用程序能否很好地利用多核机器 https stackoverflow com questions 1649402 would a multithreaded java applic
  • 为什么 hibernate 在一张表中保存两个 @OneToMany 列表?

    想象一下使用 Hibernate 和 JPA 的简化代码如下 Entity class C Id GeneratedValue public long id MappedSuperclass abstract class A Id Gene
  • 具有最小刻度的图表的漂亮标签算法

    我需要手动计算图表的刻度标签和刻度范围 我知道漂亮刻度的 标准 算法 参见 我也知道这个Java实现 http erison blogspot nl 2011 07 algorithm for optimal scaling on char
  • Java 相当于 Perl 的 s/// 运算符?

    我有一些代码正在从 Perl 转换为 Java 它大量使用了正则表达式 包括s 操作员 我已经使用 Perl 很长时间了 但仍然习惯 Java 的做事方式 特别是 字符串似乎更难使用 有谁知道或有一个完全实现的Java函数s 这样它就可以处
  • IntSummaryStatistics的summaryStatistics方法

    为什么空 IntStream 上的 summaryStatistics 方法返回整数的最大和最小值作为流中存在的最大和最小 int 值 IntStream intStream IntStream of IntSummaryStatistic
  • 如何使 ScheduledExecutorService 在计划任务取消时自动终止

    我正在使用一个ScheduledExecutorService如果网络连接已打开超过几个小时 则关闭该连接 然而 在大多数情况下 网络连接在超时之前就关闭了 所以我取消了ScheduledFuture 在这种情况下 我还希望执行程序服务终止
  • 将 RequestBody json 转换为对象 - Spring Boot

    我是 java 开发的初学者 但之前有 PHP 和 Python 等编程语言的经验 对于如何进行 Spring Boot 的开发几乎没有什么困惑 我正在开发一个rest API 它有以下请求 key value key1 value1 pl
  • 整数与 int 比较

    我是新来的java 我现在正在学习非原始整数类型java 我知道以下比较无效并引发编译错误 String str c Char chr c if str chr return true 上面的代码片段给了我 Test java lineNu
  • 维护插入顺序的并发集合[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以维护插入顺序的并发列表 有人有什么好的推荐吗 我看一些番石榴 例如SetFromMa
  • “未找到 JAVA 路径。请检查 JAVA 是否已安装。”初始化 RSelenium 时出错

    我正在尝试启动一个 RSelenium 会话到 webscrape 但是 当运行此代码时 driver lt rsDriver browser c chrome chromever 76 0 3809 126 port 4444L 我收到此
  • Java检测鼠标长按

    如果用户按下 JList 组件超过 3 秒 有什么方法可以捕获事件吗 我发现困难的部分是即使在用户松开鼠标左键之前也需要触发事件 这可以通过 mousePressed 和 mouseReleased 组合轻松完成 您可以在 mouseDow
  • 属性文件中的字符串主机名:Java

    这听起来可能是一个非常简单的问题 但我无法找到解决方法 我有一个 config properties 文件 其中包含两个键值 IP 地址和端口号 我读取此配置文件以提取字符串格式的键值 但是 当我尝试使用这些值时 我无法连接到从配置文件中检
  • Elasticsearch NodeBuilder 与 TransportClient

    对于其他 Elasticsearch 开发人员来说 这可能是一个非常简单 而且愚蠢 的问题 这两者之间有什么区别 我正在从 Java Web 应用程序连接到远程 Elasticsearch 服务器 到目前为止我一直在使用 Transport
  • logcat 信息出现在 Android Studio 的“运行”选项卡中

    我的 android studio 运行选项卡很简单 然后它变得更难并给我更多信息 例如 logcat 中的信息 如何禁用或删除第二张图片中出现的更多信息并返回到第一张图片中的第一个外观 我只需要正在运行的 flutter 应用程序的日志输
  • 使用 InputStream 通过 TCP 套接字接收多个图像

    每次我从相机捕获图像时 我试图将多个图像自动从我的 Android 手机一张一张地发送到服务器 PC 问题是read 函数仅在第一次时阻塞 因此 从技术上讲 只有一张图像被接收并完美显示 但在那之后当is read 回报 1 该功能不阻塞
  • Java 中 .NET 的 Lambda 表达式

    我最近 再次 从 C 迁移到 Java 但我非常怀念 lambda 表达式和 C 的 IEnumerable Foreach 之类的东西 所以我正在寻找Java中的lambda表达式库 有比这更好的图书馆吗LambdaJ http code
  • Java 应用程序启动,ProcessBuilder 一段时间后被阻止

    我正在开发一个 Java 桌面应用程序 我们称之为控制台 包含 3 个按钮 其中两个启动 Win32 应用程序 第三个应该启动一个可执行的 jar ProcessBuilder pb new ProcessBuilder java jar
  • 将 JSON 发送到 Spring MVC 控制器

    我正在尝试将 JSON 发送到 Spring MVC 控制器 在 Spring MVC 方面 一切都配置正确 下面是代码 但似乎没有运行

随机推荐

  • 使用 PHP 读取 mp4 文件

    我正在尝试用 PHP 读取 mp4 文件 我现在正在做的是这样的 但这样我就无法跳过甚至返回 直到视频未加载 100 当然 当我直接从文件 video mp4 读取时 一切都很顺利 Thanks 您需要自己在 PHP 中实现跳过功能 这是一
  • 分配最大缓冲区而不使用交换

    在Linux下的C C 中 我需要分配一个大的 几GB 内存块 以便存储来自连接到以太网端口的传感器的实时数据以及约110MB s的流数据 我想分配尽可能多的内存 以最大化我可以存储的数据序列的长度 但是 我还需要确保不会发生磁盘交换 因为
  • NoSuchMethodErrorNotification.Builder.build()

    Notification noti new Notification Builder context setContentTitle TITLE setContentInfo INFO build notificationManager n
  • vim命令行中使用alt+backspace键按单词删除

    有没有办法使用alt backspace在vim命令行中 必须退格时会变得不守规矩 very long file path单独删除而不是使用alt 退格键按单词删除 尝试使用
  • 如何从Android中的onSaveInstanceState包中获取数据

    您好 我正在尝试从捆绑中获取数据onSaveInstanceState of Activity在安卓中 我正在寻找该属性的值curTab它们在捆绑数据中 捆绑数据在这里 Bundle android viewHierarchyState B
  • 使用react-player npm 在 IOS 上不会自动播放视频

    我想在用户访问该页面时播放视频 它在除 IOS 之外的所有平台上都能正常工作 我在用反应播放器 https www npmjs com package react playernpm 我尝试过传递静音属性 但不起作用 我的代码看起来像这样
  • 使用 jQuery AJAX 加载 JSON 数据

    我需要在单击按钮并按日期排序时打印此信息 到目前为止我有这个 我有看起来像这样的 json 文件 但我无法在页面上打印它 但仍然没有得到到按日期排序部分 我不确定问题是否出在我正在使用的 ajax 版本的链接上 或者是什么问题 因为我在 y
  • UITextView委托多次调用

    我正在使用 UITextView 并实现委托功能 var count 0 func textView textView UITextView shouldChangeTextIn range NSRange replacementText
  • 为什么连接到 OLEDB 时出现连接错误

    我有以下代码连接到我的数据库并从表中检索一些数据 string connectionString Data Provider SQLOLEDB Data Source myserver Initial Catalog Db Integrat
  • Slick.js:隐藏滑块直到图像加载

    Using Slick js http kenwheeler github io slick 如何隐藏幻灯片直到图像加载或至少加载第一个图像 我尝试使用init但无法让它发挥作用 控制台也没有输出任何内容 var slider slider
  • 使用 ZXing.net 生成条形码

    我正在尝试使用 ZXing NET 为 dot net core asp net 应用程序生成条形码 我不知道如何用条形码显示文本 而且文档似乎真的非常缺乏 有谁知道如何让它发挥作用吗 这是我的代码 主要取自另一篇关于SO的文章 Barco
  • 双向方差分析后箱线图上的 TukeyHSD 结果

    我有类似的代码在单向方差分析上运行良好 并且我的所有命令似乎都有效 但字母没有绘制 我的控制台中没有收到任何错误 因此我们将不胜感激 My data gt dput BodyComp structure list TimePoint str
  • 如何从代码隐藏中设置列表视图内的标签文本

    实际上 我正在使用 c 和 ASP NET 开发一个 Web 模板 我的连接字符串是
  • 为什么“async”不是保留字?

    据我所知 两者the spec https tc39 github io ecmascript asyncawait Identifiers and 文档 https developer mozilla org en US docs Web
  • 我应该如何根据用户设置加载CSS样式?

    在我的 ASP NET MVC 网站中 人们可以选择不同的 css 样式 将来这些 css 样式的名称将存储在数据库中 我有以下方法 尚未与数据库通信 public FileResult CssStyle string style Cont
  • 在 Snow Leopard 及更高版本上从音频输出设备录制音频环回

    我想以编程方式在 C C ObjC 中的 OSX 10 6 上记录来自音频输出设备 而不是输入 的音频环回 它应该从所有进程而不是像 SoundFlower 这样的特定进程捕获音频输出 PCM 原始数据 对此有什么想法吗 None
  • 我如何检查我的应用程序是否正在运行

    如何检查我的 Android 应用程序是否已在运行以防止重复启动 如何进行 硬退出 以防止我的应用程序在后台运行 双发射 是不可能的 如果您的应用程序已经在运行 并且您尝试启动另一个实例 那么您将恢复第一个启动实例 您可以通过添加来完成活动
  • 使用注释扩展 Hibernate 实体

    我需要扩展一个具有相同特征的实体 而不使用抽象类 我可以编写如下代码吗 Entity Table name ABC SequenceGenerator sequenceName SEQ ABC name idGenerator alloca
  • 如何在 C++ 中将光标位置设置为行首?

    所以我试图制作代码的一部分 在其中写入一些内容 然后覆盖它 像这样 10 seconds have passed 11 seconds have passed 12 seconds have passed 而不使用新行来打印它 所以我不想使
  • Java EJB JNDI Bean 查找失败

    我有以下结构