好吧,一个最佳实践(至少对我而言)是使用非arg InitialContext构造函数并将提供者特定的东西(如初始上下文工厂和提供者url)jndi.properties放在类路径上的文件中,而不是硬编码这些东西.您还需要将"正确的"JMS提供程序JAR放在类路径上.换句话说,您可以拥有通用代码,但仍需要配置运行时环境(除非您在像Spring这样的容器中运行客户端代码).
已经有2个好的答案,但我想补充一点解释.JMS是API标准,它没有为服务器定义有线协议.因此,所有JMS实现都有不同的有线协议 - 因此您始终需要特定于供应商的JAR.创建与所有JMS提供程序兼容的JMS客户端库是不可能的.
在源代码中,您应该避免特定于供应商的功能(例如,TIBCO EMS允许您使用非JNDI,本机名称访问目标,并且它具有自定义确认模式).如果始终使用JNDI查找,则只有JNDI URL和初始上下文工厂名称将特定于服务器类型.
| 归档时间: |
|
| 查看次数: |
5907 次 |
| 最近记录: |