Ari*_*iod 4 glassfish jca java-ee
我们有一个在Glassfish 3.1上运行的Java EE应用程序,它需要接受来自用Java编写的遗留系统的通知.此遗留系统提供了一个JAR文件,应该由希望订阅系统通知的任何外部应用程序使用.
在Java SE应用程序中使用时,库的工作方式如下:
我们希望在Java EE中重现相同的方式,即只要系统发送通知就调用EJB方法.
JCA是走的路吗?单例EJB如何初始化库并将自己注册为侦听器?
关于这个主题的好例子很难找到,所以如果你有任何指导,我将不胜感激.
从理论上讲,JCA确实是用于此的专用API.
如果应用程序是EAR并且EJB类存在于纯EJB模块中,则允许EJB执行的操作存在相当多的限制.JCA可以专门做那些不允许EJB做的事情(反射,静态字段,创建线程,加载本机库等).
缺点是JCA是一个"精心"未充分记录的API,更倾向于由您描述的此类遗留系统的供应商使用,而不是"普通"应用程序员.如果你想采用JCA方式,一个信息源可能是Quartz源代码,它包含Quartz的入站JCA资源适配器.
应该仔细地将Singleton直接注册为听众.遗留库应该获得对Singleton的代理类的引用,而不是实际的实现(即不传递this给遗留库).
另一种选择可能是提供一个实现所需接口的常规类,并向遗留库注册.收到通知后,它可以从JNDI查找JMS连接工厂和队列,然后发送消息驱动Bean正在侦听的JMS消息.
| 归档时间: |
|
| 查看次数: |
344 次 |
| 最近记录: |