Skip to content

Mop 4.0.6.5 start failed: NoClassDefFoundError MQTTCommonConfiguration #1818

@2bops

Description

@2bops

Describe the bug
I deployed a Pulsar cluster (Pulsar version 4.0.4) using the helm chart pulsar-4.0.1 in a K8s environment, and added the following configurations in the configuration file.


messagingProtocols=mqtt
mqttListeners=mqtt://0.0.0.0:1883
mqttProxyEnabled=true
mqttProxyPort=5682
protocolHandlerDirectory=/tmp/protocols
advertisedAddress=

he pulsar-protocol-handler-mqtt-4.0.6.5.nar file has been copied into the container and is located in the specified directory. However, the startup failed with an error that appears to be a NoClassDefFoundError.

2025-09-16T05:48:32,149+0000 [main-EventThread] INFO org.apache.bookkeeper.zookeeper.ZooKeeperWatcherBase - ZooKeeper client is connected now.
2025-09-16T05:48:32,312+0000 [main] INFO org.apache.pulsar.broker.protocol.ProtocolHandlerUtils - Searching for protocol handlers in /tmp/protocols
2025-09-16T05:48:32,314+0000 [main] INFO org.apache.pulsar.common.nar.NarUnpacker - Created directory /tmp/pulsar-nar/pulsar-protocol-handler-mqtt-4.0.6.5.nar-unpacked
2025-09-16T05:48:32,322+0000 [main] INFO org.apache.pulsar.common.nar.NarUnpacker - Extracting /tmp/protocols/pulsar-protocol-handler-mqtt-4.0.6.5.nar to /tmp/pulsar-nar/pulsar-protocol-handler-mqtt-4.0.6.5.nar-unpacked/nQ63wb1tPstKeJWR8INbKw.tmp
2025-09-16T05:48:32,336+0000 [main] WARN org.apache.pulsar.common.nar.NarClassLoader - /tmp/pulsar-nar/pulsar-protocol-handler-mqtt-4.0.6.5.nar-unpacked/nQ63wb1tPstKeJWR8INbKw does not contain META-INF/bundled-dependencies!
2025-09-16T05:48:32,342+0000 [main] INFO org.apache.pulsar.broker.protocol.ProtocolHandlerUtils - Found protocol handler from /tmp/protocols/pulsar-protocol-handler-mqtt-4.0.6.5.nar : ProtocolHandlerDefinition(name=mqtt, description=MQTT Protocol Handler, handlerClass=io.streamnative.pulsar.handlers.mqtt.broker.MQTTProtocolHandler)
2025-09-16T05:48:32,346+0000 [main] WARN org.apache.pulsar.common.nar.NarClassLoader - /tmp/pulsar-nar/pulsar-protocol-handler-mqtt-4.0.6.5.nar-unpacked/nQ63wb1tPstKeJWR8INbKw does not contain META-INF/bundled-dependencies!
2025-09-16T05:48:32,350+0000 [main] INFO org.apache.pulsar.broker.protocol.ProtocolHandlers - Successfully loaded protocol handler for protocol mqtt
2025-09-16T05:48:32,355+0000 [main] ERROR org.apache.pulsar.PulsarBrokerStarter - Failed to start pulsar service.
java.lang.NoClassDefFoundError: io/streamnative/pulsar/handlers/mqtt/common/MQTTCommonConfiguration
at java.base/java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
at java.base/java.lang.ClassLoader.defineClass(Unknown Source) ~[?:?]
at java.base/java.security.SecureClassLoader.defineClass(Unknown Source) ~[?:?]
at java.base/java.net.URLClassLoader.defineClass(Unknown Source) ~[?:?]
at java.base/java.net.URLClassLoader$1.run(Unknown Source) ~[?:?]
at java.base/java.net.URLClassLoader$1.run(Unknown Source) ~[?:?]
at java.base/java.security.AccessController.doPrivileged(Unknown Source) ~[?:?]
at java.base/java.net.URLClassLoader.findClass(Unknown Source) ~[?:?]
at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
at org.apache.pulsar.common.nar.NarClassLoader.loadClass(NarClassLoader.java:303) ~[org.apache.pulsar-pulsar-common-4.0.4.jar:4.0.4]
at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
at io.streamnative.pulsar.handlers.mqtt.broker.MQTTProtocolHandler.initialize(MQTTProtocolHandler.java:80) ~[?:?]
at org.apache.pulsar.broker.protocol.ProtocolHandlerWithClassLoader.initialize(ProtocolHandlerWithClassLoader.java:71) ~[org.apache.pulsar-pulsar-broker-4.0.4.jar:4.0.4]
at org.apache.pulsar.broker.protocol.ProtocolHandlers.initialize(ProtocolHandlers.java:116) ~[org.apache.pulsar-pulsar-broker-4.0.4.jar:4.0.4]
at org.apache.pulsar.broker.PulsarService.start(PulsarService.java:908) ~[org.apache.pulsar-pulsar-broker-4.0.4.jar:4.0.4]
at org.apache.pulsar.PulsarBrokerStarter$BrokerStarter.call(PulsarBrokerStarter.java:275) ~[org.apache.pulsar-pulsar-broker-4.0.4.jar:4.0.4]
at org.apache.pulsar.PulsarBrokerStarter$BrokerStarter.call(PulsarBrokerStarter.java:130) ~[org.apache.pulsar-pulsar-broker-4.0.4.jar:4.0.4]
at picocli.CommandLine.executeUserObject(CommandLine.java:2041) ~[info.picocli-picocli-4.7.5.jar:4.7.5]
at picocli.CommandLine.access$1500(CommandLine.java:148) ~[info.picocli-picocli-4.7.5.jar:4.7.5]
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461) ~[info.picocli-picocli-4.7.5.jar:4.7.5]
at picocli.CommandLine$RunLast.handle(CommandLine.java:2453) ~[info.picocli-picocli-4.7.5.jar:4.7.5]
at picocli.CommandLine$RunLast.handle(CommandLine.java:2415) ~[info.picocli-picocli-4.7.5.jar:4.7.5]
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273) ~[info.picocli-picocli-4.7.5.jar:4.7.5]
at picocli.CommandLine$RunLast.execute(CommandLine.java:2417) ~[info.picocli-picocli-4.7.5.jar:4.7.5]
at picocli.CommandLine.execute(CommandLine.java:2170) ~[info.picocli-picocli-4.7.5.jar:4.7.5]
at org.apache.pulsar.PulsarBrokerStarter$BrokerStarter.start(PulsarBrokerStarter.java:151) ~[org.apache.pulsar-pulsar-broker-4.0.4.jar:4.0.4]
at org.apache.pulsar.PulsarBrokerStarter.main(PulsarBrokerStarter.java:366) [org.apache.pulsar-pulsar-broker-4.0.4.jar:4.0.4]
Caused by: java.lang.ClassNotFoundException: io.streamnative.pulsar.handlers.mqtt.common.MQTTCommonConfiguration
at java.base/java.net.URLClassLoader.findClass(Unknown Source) ~[?:?]
at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
at org.apache.pulsar.common.nar.NarClassLoader.loadClass(NarClassLoader.java:303) ~[org.apache.pulsar-pulsar-common-4.0.4.jar:4.0.4]
at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
... 27 more
2025-09-16T05:48:32,364+0000 [main] WARN org.apache.pulsar.common.util.ShutdownUtil - Triggering immediate shutdown of current process with status 1
java.lang.Exception: Stacktrace for immediate shutdown
at org.apache.pulsar.common.util.ShutdownUtil.triggerImmediateForcefulShutdown(ShutdownUtil.java:55) [org.apache.pulsar-pulsar-common-4.0.4.jar:4.0.4]
at org.apache.pulsar.common.util.ShutdownUtil.triggerImmediateForcefulShutdown(ShutdownUtil.java:50) [org.apache.pulsar-pulsar-common-4.0.4.jar:4.0.4]
at org.apache.pulsar.common.util.ShutdownUtil.triggerImmediateForcefulShutdown(ShutdownUtil.java:82) [org.apache.pulsar-pulsar-common-4.0.4.jar:4.0.4]
at org.apache.pulsar.PulsarBrokerStarter.main(PulsarBrokerStarter.java:372) [org.apache.pulsar-pulsar-broker-4.0.4.jar:4.0.4]


The logs indicate the protocol handler was loaded, but the broker fails to start due to an error.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions