我们一直在使用JCA从WebSphere内部与低级网络资源进行交互,但是我们需要能够从Tomcat外部访问相同的网络资源(即不在托管环境中)。网络通信和协议布局非常详细,因此我们不想复制/粘贴数千行代码(然后必须单独维护)。

从阅读JCA规范,据说可以在非管理环境(例如Tomcat)中执行代码。不幸的是,我不知道 什么 这些接口应该是这样做的,或者如何从托管环境外部调用它们(规格很模糊)。

是否有任何实施示例可以显示如何在非管理环境中修改JCA可用?

谢谢!

有帮助吗?

解决方案

我们也有类似的情况,在该情况下,我们开发了一个连接器来访问外部WebDAV存储,并希望从独立的应用程序(非管理)中使用它。

我确实相信,最简单的方法是在设计级别上解决此问题,并以连接器的核心逻辑为JCA-Agnostic的方式组织您的代码,并且可以轻松地重复使用。然后,您可以用JCA特定的代码包装它,以将连接器暴露于AS。它甚至可能被包装在两个罐子中 - 至少是我们选择的解决方案(但我们将全部包装成一个.jar)。

否则,JCA连接器是以下三方之间的“胶水”:

  1. 应用程序服务器
  2. EIS
  3. 应用程序组件。

应该有可能使用必要类的轻量级实现来模拟AS,然后直接使用JCA连接器。

相对于JCA连接器的AS的一个主要工作是管理连接的汇总,从我记得的情况下,您应该实现的相应界面是 ConnectionManager.

JCA连接器会引用 ConnectionManager, ,但是实施是特定的。编写一个轻巧的实现,提供基本的合并(或根本没有合并)听起来可行。

我曾经写过一次 连接分配的序列图 机制。也许您会发现它有用。另一个接口是 ResourceAdapter 在哪里定义了启动/关闭,但这很容易手动调用。

(可能有更多的 WorkWorkManager, ,然后嘲笑变得更加复杂。如果连接器是交易,则相同的说明。但这似乎不是您的案子。)

否则,我认为春天对JCA有所支持,可能值得看看他们的做法。

从阅读JCA规范,据说可以在非管理环境中执行代码

您能否提及您所指的规格的特定部分?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top