我想配置一个自写的 JCA 1.6 入站资源适配器 (RA)。我的大问题是 RA 需要访问使用 RA 的应用程序中的一些(动态)配置数据。现在我知道这与整个 JCA 理念的最初理念背道而驰,但不幸的是,我无法按照我的意愿/必须尽快更改此设计。我需要到达 RA 的数据是
- 它应该监听的端口,
- 用于整个应用程序的许可证(RA 提供的功能需要额外的许可)
- 存储在数据库中的附加配置数据
我提出了四个想法:
- 使用 asadmin create-resource-adapter-config。由于 glassfish 似乎不会根据 RA 重新启动应用程序,因此我们需要在此之后重新启动应用程序。虽然此尝试适用于端口,但不适用于其他数据。
使用受管对象为我的应用程序提供一种将数据传递到 RA 的方法。这里提到了这个想法。我想这样做了,但规范在第 13.4.2.3 章中指出
请注意,管理对象不用于设置到消息端点的异步消息传递。ActivationSpec JavaBean 用于保存异步消息传递设置所需的所有必要激活信息。
但是我无法将任何动态数据传递给 ActivationSpec 对象(既不是通过 DeploymentDescriptor 也不是通过注释)。还是我在这里错过了什么?:-)
直接使用 JDBC 来访问数据(也从这里得到了这个想法)。虽然这可能是最好的主意,但它不适用于上述许可数据,因为它不存储在数据库中。
我的最后一个想法是在 MessageDrivenBean(通过我的接口)中放置一个方法,用于从 RA 中获取数据。可以从 RA 调用该方法并提供数据。但是:我只是认为这是相当滥用的,因为它将 RA 与应用程序结合在一起。
亲爱的社区,您对此有何看法?恐怕要找到这些问题的答案并不容易,所以我会很高兴有意见!
谢谢和欢呼,朱利叶斯