Resolving Smack Library Dependencies for OpenFire Integration in Java

Maven Dependencies from GitHub

Referencing the official Smack documentation, the following Maven dependencies are required for version 4.2.0:

<dependency>
    <groupId>org.igniterealtime.smack</groupId>
    <artifactId>smack-java7</artifactId>
    <version>4.2.0</version>
</dependency>
<dependency>
    <groupId>org.igniterealtime.smack</groupId>
    <artifactId>smack-tcp</artifactId>
    <version>4.2.0</version>
</dependency>
<dependency>
    <groupId>org.igniterealtime.smack</groupId>
    <artifactId>smack-im</artifactId>
    <version>4.2.0</version>
</dependency>
<dependency>
    <groupId>org.igniterealtime.smack</groupId>
    <artifactId>smack-extensions</artifactId>
    <version>4.2.0</version>
</dependency>

Dependency Requirements for Smack 4.3.4

For version 4.3.4, there are two approaches to handle dependencies:

Method 1: Maven Dependencies

This version requires a additional dependency compared to 4.2.0:

<dependency>
    <groupId>org.igniterealtime.smack</groupId>
    <artifactId>smack-java7</artifactId>
    <version>4.3.4</version>
</dependency>
<dependency>
    <groupId>org.igniterealtime.smack</groupId>
    <artifactId>smack-tcp</artifactId>
    <version>4.3.4</version>
</dependency>
<dependency>
    <groupId>org.igniterealtime.smack</groupId>
    <artifactId>smack-im</artifactId>
    <version>4.3.4</version>
</dependency>
<dependency>
    <groupId>org.igniterealtime.smack</groupId>
    <artifactId>smack-extensions</artifactId>
    <version>4.3.4</version>
</dependency>
<dependency>
    <groupId>org.igniterealtime.smack</groupId>
    <artifactId>smack-resolver-minidns</artifactId>
    <version>4.3.4</version>
</dependency>

Method 2: Manual JAR Management

Download the complete Smack 4.3.4 distribution from the official website and manually include these additional JAR files:

  • jxmpp-core-0.6.4.jar
  • jxmpp-jid-0.6.4.jar
  • jxmpp-util-cache-0.6.4.jar
  • minidns-core-0.3.4.jar
  • xpp3_xpath-1.1.4.jar
  • minidns-client-0.3.4.jar
  • minidns-dnssec-0.3.4.jar
  • minidns-hla-0.3.4.jar
  • minidns-iterative-resolver-0.3.4.jar
  • xpp3-1.1.4c.jar

Resolving DNS Dependency Issue

When using manually downloaded JARs, you may encounter this error:

Exception in thread "main" java.lang.NoClassDefFoundError: org/xbill/DNS/TextParseException
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at org.jivesoftware.smack.SmackInitialization.loadSmackClass(SmackInitialization.java:193)
    ... additional stack trace details

This requires adding the dnsjava library:

<dependency>
    <groupId>org.xbill</groupId>
    <artifactId>dns</artifactId>
    <version>2.0.8</version>
</dependency>

With this additional dependency, all Smack connectivity issues with OpenFire should be resolved.

Tags: java Smack OpenFire Maven XMPP

Posted on Fri, 09 Oct 2026 16:23:15 +0000 by jasonok6