在 Weblogic 10.3 中调用 EJB 时出现 NameNotFoundException

2023-12-28

我有一个 EJB 定义如下:

package com.foo;
@Stateless (mappedName="HelloWorld")
public class HelloWorldBean implements HelloWorld, HelloWorldLocal
....

当它部署到 Weblogic (WL) 时,它的名称为 myBean。我不确定这是否重要。

我尝试使用以下代码调用 bean:

Hashtable ht = new Hashtable();
ht.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
ht.put(Context.PROVIDER_URL, "t3://localhost:7001");
ic = new InitialContext(ht);
tp = (HelloWorld) ic.lookup("HelloWorld#com.foo.HelloWorldBean");

有人知道为什么我会收到以下错误吗?

javax.naming.NameNotFoundException: While trying to lookup 'HelloWorld#com.foo.HelloWorldBean' didn't find subcontext 'HelloWorld#com'.
 Resolved '' [Root exception is javax.naming.NameNotFoundException: While trying
 to lookup 'HelloWorld#com.foo.HelloWorldBean' didn't find
 subcontext 'HelloWorld#com'. Resolved '']; remaining name 'HelloWorld#com/foo/HelloWorldBean'

查找具有多个远程业务接口的会话 Bean 的远程接口(例如com.acme.FooBusiness1, com.acme.FooBusiness2),您需要查找从目标 ejb 的全局 JNDI 名称(mappedName() in @Stateless)和具体的远程业务接口,用“#”分隔:

InitialContext ic = new InitialContext();
FooBusiness1 bean1 = (FooBusiness1) ic.lookup("FooEJB#com.acme.FooBusiness1");
FooBusiness2 bean2 = (FooBusiness2) ic.lookup("FooEJB#com.acme.FooBusiness2");

在 Bean 仅具有一个远程业务接口的典型情况下,不需要这种完全限定的形式。在这种情况下,可以直接使用 bean 的 JNDI 名称:

FooBusiness bean = (FooBusiness) ic.lookup("FooEJB");

这是理论部分。现在练习。就你的情况而言,据我所知,你正在从 Weblogic 访问 EJB,所以我宁愿使用 no-argInitialContext()构造函数(并使用jndi.properties其他环境的配置文件)但这只是一个旁注。那么你应该抬头看看com.foo.HelloWorld,远程接口,不是com.foo.HelloWorldBean,实施:

InitialContext ic = new InitialContext();
(HelloWorld) ic.lookup("HelloWorld#com.foo.HelloWorld");

如果您的 bean 只有一个远程业务接口,那么这应该可以工作:

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

在 Weblogic 10.3 中调用 EJB 时出现 NameNotFoundException 的相关文章

随机推荐

  • 删除JQ中嵌套对象中的字段

    我有一个 JSON 行文件summary领域和其他领域 我想使用 JQ 删除所有汇总字段 这是我的输入 object1 summary Some summary I want removing keepMe please object2 s
  • XSL-FO 的架构在哪里? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道如何 在哪里下载 XSL FO 1 1 架构 我找不到 XSL FO 1 1 模式 所以很多人
  • 如何在 SQLAlchemy 中建模“UNIQUE”约束?

    我正在编写一个 Flask SQLAlchemy 应用程序 其中有用户和组 用户可以属于多个组 并且他们在每个组中都有一个唯一的编号 询问如何对数据库进行建模 https dba stackexchange com questions 32
  • 如果您不知道 Powershell 中 JSON 对象的名称字段,如何获取它?

    我有这个 JSON 文件 CARD MODEL TITLE OWNER S MANUAL CARD MODEL SUBTITLE Configure your download CARD MODEL SELECT Select Model
  • 如何显示/隐藏(如果可能的话使用动画)LongListSelector 中的复选框

    我已经在 MSDN 上搜索了几个小时 但找不到如何在 Windows Phone 8 的列表中显示或隐藏复选框的示例 一个示例是在消息传递应用程序中 用户使用应用程序栏来按 多项选择 按钮 这允许用户选择多条消息 我发现了一些有关使用 Ex
  • 在 Visual Studio 中的包管理器控制台上更新多个包

    在 Visual Studio 中 包管理器控制台比包管理器对话框更快 这就是为什么我总是使用控制台 但是 有时我需要一次更新 2 3 个软件包 比如说模型 存储库项目 有没有命令可以一次指定这2 3个包 这样我就不用一一打字等待了 顺便说
  • PatternTest 未优化?

    在准备回应时Mathematica 中 PatternTest 的意外行为 https stackoverflow com q 8468072 618728我遇到了意想不到的事情数学我自己的行为 请考虑 test Print False M
  • Eclipse Xdebug 冻结在 57%

    我的问题 当从 Eclipse 为我的一个 php 页面启动调试配置时 该页面在 Chrome 中成功打开 但 Eclipse 调试器冻结在 57 位于 Eclipse 的右下角 并且永远不会进一步前进 永远不会达到设定的断点 我的设置 M
  • 在 swift 中打印而不换行

    在斯威夫特2 0中 print 自动添加换行符 在斯威夫特 1 2 中 println and print 曾经是单独的功能 那么我如何打印一些文本而不添加换行符 因为 swift 不再具有不附加换行符的打印功能 从 Swift 2 0 开
  • 确定汽车和非汽车模式之间最多 1 小时的时差

    I have household person time mode 1 1 07 45 00 non car 1 1 09 05 00 car 1 2 08 10 00 non car 1 3 22 45 00 non car 1 4 08
  • 无法使用 Ghost4J 加载库“gs”

    我正在尝试使用 Ghost4J 将 PDF 转换为 PNG 我知道人们以前曾问过这个问题 但在 OS X 10 和最新版本的 Ghost4J 中却没有 我已按照 zippy1978 的答案中列出的说明进行操作 使用 Java 将 PDF 转
  • WM_TOUCH 不会立即随触摸事件一起发送

    我正在使用触摸屏并使用 Windows 7 内置驱动程序 因为它从未提示我安装任何驱动程序 除了一个小问题外 它工作正常 当我触摸屏幕时 它不会发送 WM LBUTTONDOWN 直到我将手指移离屏幕 这样做似乎是为了确定我是否打算按住模拟
  • setlocale() 无法在 MacOS 上使用 MAMP 在本地主机上工作

    简而言之我的问题 我正在使用setlocale LC TIME de DE 为了用德语显示日期 时间的 口头 部分 即月份 工作日 这适用于任何公共服务器 但是doesn t在我的本地主机上 使用 MAMP 它以英语而不是德语显示它 详细地
  • 为 Mac App Store 创建基于 HTML5 的应用程序

    Mac 版的新 Tweetdeck 据说是基于 HTML5 的 http www cultofmac com 134237 tweetdeck releases html5 based app in the mac app store ht
  • Networked-aframe 为新用户分配不同的位置

    我在使用 networked aframe 设置的多人 A Frame 环境中遇到问题 我希望连接的前三个用户有不同的生成位置 并且任何其他用户在第三个位置生成 但我无法让它工作 这是我到目前为止在 Html 中所拥有的内容
  • 以“更快”的方式隐藏信息?

    我有一个关于面向对象设计原则和 Swift 的问题 我对 Java 非常熟悉 目前正在学习 udacity 课程 以便初步掌握 Swift 在 Java 社区 基本上在每个遵循 OOP 的社区 中 使用信息隐藏技术 例如将数据隐藏或封装在类
  • Bootstrap 词缀重置不起作用

    我正在尝试在引导程序中实现一个词缀 这应该不是问题 但我想让它响应 当页面调整大小时 某些元素将隐藏在页面顶部 并且由于宽度的变化 我需要重置词缀并设置到新位置 我刚刚搜索了一下 发现了一个接受的解决方案 https stackoverfl
  • 简单的 HTML 电子邮件:基本 CSS 样式被剥离

    我正在通过 python 脚本从 Linux 机器上的命令行发送一封简单的电子邮件 我查找了有关为什么 CSS 在电子邮件客户端中可能会被更改 删除等的答案 但是 我似乎无法解决在我看来简单的问题 当我发送带有表格的简单 HTML 电子邮件
  • 经典 ASP 应用程序 CINT 失败 - twitpocalypse v2

    由于数量值超过了 VBScript INT 可以存储的数量 我收到了一条非常讨厌的错误消息 实际上是用户 这完全是一个情况推特末日 http www twitpocalypse com 由于 CINT 在这种情况下不起作用 最好的解决方法是
  • 在 Weblogic 10.3 中调用 EJB 时出现 NameNotFoundException

    我有一个 EJB 定义如下 package com foo Stateless mappedName HelloWorld public class HelloWorldBean implements HelloWorld HelloWor