- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
使用 EJB 的经验不是很丰富,我遇到了以下问题,希望你们中的某个人能帮忙解决。
假设以下情况:定义了一组@Local
bean 来提供对数据库的访问。这些bean 非常简单,部署在应用服务器A (Weblogic 10.3.3) 上。我们希望通过远程提供对这些本地 beans 的访问,并且由于我们已经有一个“服务”模块设置来提供对我们服务的外部访问,我们的想法是创建一个新的 @Remote
服务,该服务使用上述 local beans(通过 @EJB
注入(inject))。这些服务bean也部署在应用服务器A上,例如:
@Local
public interface DatabaseBeanLocal { doStuff(); }
@Stateless(name = "ejb/DatabaseBean", mappedName = "DatabaseBean")
public class DatabaseBean implements DatabaseBeanLocal { doStuff() { ... } ; }
@Remote
public interface ServiceBean { doSomeOtherStuff(); }
@Stateless
public class ServiceBeanImpl implements ServiceBean
{
@EJB(name = "ejb/DatabaseBean", mappedName = "DatabaseBean")
private DatabaseBeanLocal myDatabaseBean;
... methods etc. ...
}
实际使用这些远程 bean 的客户端实际上运行在不同的应用服务器上; 应用程序服务器 B(也是 Weblogic 10.3.3)。当我们从客户端查找 ServiceBean
bean 时,它工作正常。但是,当我们调用需要访问 DatabaseBean
的方法时,调用失败。 Weblogic 服务器说它找不到 DatabaseBean
接口(interface)的 bean。
我的问题:这种设置是否可行?换句话说:Weblogic(或另一个容器)会将本地 bean 注入(inject)到远程 bean 中,以便客户端获得能够调用本地 bean 上的操作的远程 bean 实例(我假设不会,但我在问无论如何要确定)?
如果没有,我想我们别无选择,只能跳过服务层并通过 @Remote
提供对上面的 DatabaseBean
示例的直接访问。
在做了一些测试之后,简单地将上面的 DatabaseBean
定义为 @Remote
而不是 @Local
“修复”了这个问题。当然,这并不是真正的修复,因为这将远程调用 DatabaseBean
,这很荒谬,因为它与服务位于同一模块中。我开始怀疑用远程 EJB 包装本地 EJB 根本不可能。
到目前为止我们发现了什么:
ServiceBean
仍然不起作用,因为对本地 EJB 的依赖从未解决,或者在客户端解决,这意味着它找不到。最佳答案
本地意味着 EAR 本地而不是 AS。
您的本地和远程 Bean 必须在同一个 EAR 中(不仅在同一个 AS 中)。是吗?
-- 编辑--
嗯.. 如果它们在同一个 EAR 中,那么它应该可以工作。 IE。回答您的问题“这样的设置是否可行?”是肯定的。
不幸的是,现在我们谈论的是纯粹而简单的调试。我要做的第一件事是尝试检查本地 bean(DatabaseBean
我猜)是否实际注册并使用 WebPhere UTC 工作WebLogic 中的等效项(我从未在 WebLogic 中工作过)。我可以列出 100 项其他内容,您可以检查更多日志/跟踪/症状,但是好吧,这就是调试的方式。
关于java - 从外部 JVM 通过 Remote bean 调用 EJB3 Local bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8142933/
有什么区别 git ls-remote --heads origin 和 git ls-remote . "refs/remotes/*" ? --heads origin 版本需要一段时间才能运行,
当我执行 git remote -v 时,我得到了 origin git@xxx.yyy.cc:name fetch) origin git@xxx.yyy.cc:name (push) 为什么
要构建我的远程环境,我需要设置几个环境变量(它们在 docker-compose 文件中使用)。这些是在我的 ZSH 环境中设置的,因此从终端运行 docker-compose build 可以按预期
我有一个创建多个 Docker 镜像的项目。我想在 vscode-remote 中为每个图像设置一个 devcontainer,以便我可以为每个图像启动一个容器。 我一次只需要启动并连接到一个容器/图
我设置了以下 Remote : $ git remote korg rorg 以及以下分支: $ git branch -a * (no branch) remotes/korg/gingerbr
这是我得到的错误。我有一个简单的 .Net Remoting 设置。连接空闲几分钟后出现此错误。 对象“/7966b546_734e_410d_817a_a0e701f114f6/lfxehvbczn
我有两个远程 git 分支(称它们为“RemoteA”和“RemoteB”)。 “RemoteB”在过去的某个时候从“RemoteA”中分离出来。在那之后,许多提交已应用于两个分支,但我现在希望“Re
我知道使用下面的 git 命令我可以列出我所有的“远程”分支... [someone@someone-pc somerepo]$ git ls-remote Username for 'https:/
我最需要的是一些建议。 我有以下示例: 应用程序1.exe - 有对象 MyList 应用程序2.exe - 需要访问 MyList 并与对象交互,就好像它是从 Application2 创建的一样。
我有一个大型应用程序,它通过 .net 远程处理使用 COM 从 Web 层调用到中间层。在此模式下启动和运行非常慢。 COM 边界的两边都是我们的代码。 我希望能够(可选)在单个进程中运行它。相当多
假设我有两个 Remote :origin 和 upstream。有没有一种方法可以将对象 upstream 推送到 origin,以便其他从 origin 克隆我的 repo 的人能够运行像 git
简而言之; 如何删除远程多个 merge 的 Remote ? 更多背景; 我有一个 git 存储库,其中包含数十个已 merge 到 master 中的 Remote 。我可以使用以下方法一次删除这
我有一个仓库的本地 git clone。我当然可以使用 git remote 查看我的本地远程 origin。但是,我可以看到我的 Remote origin 的 Remote 吗?我可以查看有关这些
先决条件 - 远程服务器和客户端均已设置,客户端能够通过客户端激活的业务对象在服务器端调用方法并从服务器端接收事件。 在保持服务器和客户端运行的情况下更改远程服务器的IP地址,客户端仍然可以执行上述任
我正在设置一个新的远程主机,每次启动它时,我都会收到以下错误输出:有关如何解决此问题的任何反馈或指示? Pseudo-terminal will not be allocated because st
我只是不明白 Git 的帮助页面。那么会发生什么或有什么区别? 假设我有一个带有子模块 B 的 Git 项目 A。子模块 B 确实有一个子模块 C。克隆存储库后,A 指向 B 的特定提交。B 指向 C
我在 Java 中使用 rmi。但是有一个 ExportException“远程对象实现非法远程接口(interface)”。 这是我的代码,有人可以帮帮我吗? public interface Re
我对 git 越来越熟悉了,但是我遇到了一些让我困惑的事情。我们在这里使用本地镜像,因为我们的线路很慢。为了指向镜子,我在 .gitconfig 中有一些常用的东西。 当我想推送时,问题就来了。看来我
我设置了一个带有 conan“远程”存储库的 jfrog artifactory 来代理官方 conan-center 存储库。我看到三个不同的 conan-center URL,具体取决于我阅读的来
我无法使用 VSCode 远程 SSH 在我的远程服务器上保存任何文件,因为我不是 root 用户。 我关注了 official documentation关于如何使用 SSH 配置文件设置 ssh
我是一名优秀的程序员,十分优秀!