跳到主要内容

编码和编译指南

要开始使用标准 Solace JMS API,请导入所需的包:com.solacesystems.jms.*;

Solace JMS API 需要使用标准 Java 分发版 1.8 或更高版本。

JMS 示例应用程序包含一个示例 Ant 构建脚本,展示了如何在编译器调用期间将 Solace 库包含在 CLASSPATH 中。

确保在调用 javac 编译器时设置的 CLASSPATH 包括 lib 目录中的所有 .jar 文件。

在开发使用 Solace JMS 的应用程序时,您应该参考以下各节中的信息。

安全连接和身份验证

要成功编码和编译将使用 TLS/SSL 客户端连接、客户端证书身份验证或 Kerberos 身份验证方案的应用程序,必须满足以下要求。

Java 1.8 或更高版本提供了使用传输层安全性(TLS)/安全套接字层(SSL)加密连接到事件代理所需的 Java 安全套接字扩展(JSSE)API。

Kerberos 库

如果您的应用程序将使用 Kerberos 客户端身份验证方案,则默认使用 JVM 中的 Kerberos 库。但是,如果您使用的是 Windows 以外的操作系统,则可以通过添加以下系统属性来使用 JVM 提供的 Kerberos 库以外的库。在这种情况下,将使用默认操作系统库目录中的 Kerberos 库。

-Dsun.security.jgss.native=true
-Djavax.security.auth.useSubjectCredsOnly=false

您还可以添加以下系统属性,以提供位于默认操作系统库目录以外位置的 Kerberos 库的路径:

-Dsun.security.jgss.lib=<Kerberos 库的文件路径>

日志记录

Solace JMS API 使用 Jakarta Commons Logging 来支持不同的日志框架。Solace JMS 应用程序可以选择使用 log4j 或 java.util.logging 作为其日志框架。

使用 log4j 时,包含 log4j.properties 文件和 log4j jar 文件的目录应在类路径上。下面显示了一个示例 log4j.properties 配置:

在类路径上包含 log4j.jar 而不包含 log4j.properties 会影响程序性能。

# Log4j 配置属性
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d %-5p [%c] %m%n

# 默认情况下设置第二个 appender 的级别
log4j.appender.A2=org.apache.log4j.net.SocketAppender
log4j.appender.A2.RemoteHost=localhost
log4j.appender.A2.Port=4445

# 类别
log4j.additivity=false

log4j.logger.com.solacesystems=ERROR, A1
log4j.additivity.com.solacesystems=false

log4j.logger.com.solacesystems.jcsmp=WARN, A1
log4j.additivity.com.solacesystems.jcsmp=false

log4j.logger.com.solacesystems.jms=WARN, A1
log4j.additivity.com.solacesystems.jms=false

支持的JMSX属性

Solace JMS 支持以下 JMS 定义的(JMSX)属性。

发布客户端应用程序可以在消息中设置这些属性,消费客户端应用程序可以从消息中读取这些属性。

属性类型用途
JMSXGroupIDString消息所属的消息组的身份。
JMSXGroupSeqint消息在组内的序列号;第一条消息为 1,第二条为 2,依此类推。
JMSXUserIDString发送消息的客户端的身份。
注意:仅当使用基本客户端身份验证且启用了 jmsx-user-id-enabled 连接工厂属性时,才提供 JMSXUserID 属性。

支持的 JMSX 属性