0

I am getting the following errors while passing ActiveMQ properties in the broker URL in Quarkus native build and Camel setup.

javax.jms.JMSException: Could not create Transport. Reason: javax.jms.JMSException: Could not create Transport. Reason: java.lang.IllegalArgumentException: Invalid connect parameters: {transport.initialReconnectDelay=1000, transport.timeout=5000, transport.maxReconnectAttempts=5}

Invalid socket parameters: {enabledProtocols=TLSv1.2}, continuing to retry.
Abhishek Kumar
  • 229
  • 1
  • 5

2 Answers2

0

I found the root cause of this issue. This is related to Quarkus native build and reflection. At startup, the framework tries to set properties using reflection. After adding the following into reflectconfig.json, everything is working as expected.

"name": "org.apache.activemq.command.ConsumerInfo",
"allDeclaredConstructors": true,
"allPublicConstructors": true,
"allDeclaredMethods": true,
"allPublicMethods": true,
"allDeclaredClasses": true,
"allPublicClasses": true

"name": "org.apache.activemq.transport.failover.FailoverTransport",
"allDeclaredConstructors": true,
"allPublicConstructors": true,
"allDeclaredMethods": true,
"allPublicMethods": true,
"allDeclaredClasses": true,
"allPublicClasses": true

"name": "sun.security.ssl.SSLSocketImpl",
"allDeclaredConstructors": true,
"allPublicConstructors": true,
"allDeclaredMethods": true,
"allPublicMethods": true,
"allDeclaredClasses": true,
"allPublicClasses": true 
Abhishek Kumar
  • 229
  • 1
  • 5
  • 1
    Thanks for the analysis, @Abhishek Kumar. A Camel Quarkus issue was filed for this. You may follow the progress there https://github.com/apache/camel-quarkus/issues/3809 – Peter Palaga May 27 '22 at 11:43
0

For those who are interested in using vanilla Activemq 5 client with quarkus native mode, e.g.

<dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-pool</artifactId>
        <version>5.18.0</version>
</dependency>

following configuration works:

src/main/resources/reflection-config.json

[
{
    "name": "org.apache.commons.pool2.impl.DefaultEvictionPolicy",
    "allDeclaredConstructors": true,
    "allPublicConstructors": true,
    "allDeclaredMethods": true,
    "allPublicMethods": true,
    "allDeclaredClasses": true,
    "allPublicClasses": true
},
{
    "name": "org.apache.activemq.openwire.v12.MarshallerFactory",
    "allDeclaredConstructors": true,
    "allPublicConstructors": true,
    "allDeclaredMethods": true,
    "allPublicMethods": true,
    "allDeclaredClasses": true,
    "allPublicClasses": true
},
{
    "name": "org.apache.activemq.openwire.OpenWireFormatFactory",
    "allDeclaredConstructors": true,
    "allPublicConstructors": true,
    "allDeclaredMethods": true,
    "allPublicMethods": true,
    "allDeclaredClasses": true,
    "allPublicClasses": true
},
{
    "name": "org.apache.activemq.transport.tcp.TcpTransportFactory",
    "allDeclaredConstructors": true,
    "allPublicConstructors": true,
    "allDeclaredMethods": true,
    "allPublicMethods": true,
    "allDeclaredClasses": true,
    "allPublicClasses": true
},
{
    "name": "org.apache.activemq.transport.failover.FailoverTransport",
    "allDeclaredConstructors": true,
    "allPublicConstructors": true,
    "allDeclaredMethods": true,
    "allPublicMethods": true,
    "allDeclaredClasses": true,
    "allPublicClasses": true
},
{
    "name": "sun.security.ssl.SSLSocketImpl",
    "allDeclaredConstructors": true,
    "allPublicConstructors": true,
    "allDeclaredMethods": true,
    "allPublicMethods": true,
    "allDeclaredClasses": true,
    "allPublicClasses": true
}]

src/main/resources/resources-config.json

{
  "resources": [
    {
      "pattern": ".*/services/org/apache/activemq.*"
    }
  ]
}

src/main/resources/application.properties

quarkus.native.additional-build-args =-H:ReflectionConfigurationFiles=reflection-config.json, -H:ResourceConfigurationFiles=resources-config.json
Born78
  • 53
  • 6