Route diagram not visible in hawtio console: JMX connector not running
What happened?
Hi, I am using kamel version 2.1 and want to enable hawtio monitoring with jolokia traits. There is an exception when viewing the route diagram.
jakarta.xml.bind.JAXBException: Error while searching for service [jakarta.xml.bind.JAXBContextFactory]
with linked exception:
[java.util.ServiceConfigurationError: jakarta.xml.bind.JAXBContextFactory: org.glassfish.jaxb.runtime.v2.JAXBContextFactory not a subtype]
at jakarta.xml.bind.ContextFinder$1.createException(ContextFinder.java:85)
at jakarta.xml.bind.ContextFinder$1.createException(ContextFinder.java:82)
at jakarta.xml.bind.ServiceLoaderUtil.firstByServiceLoader(ServiceLoaderUtil.java:46)
at jakarta.xml.bind.ContextFinder.find(ContextFinder.java:319)
at jakarta.xml.bind.JAXBContext.newInstance(JAXBContext.java:392)
at jakarta.xml.bind.JAXBContext.newInstance(JAXBContext.java:349)
at org.apache.camel.xml.jaxb.DefaultModelJAXBContextFactory.newJAXBContext(DefaultModelJAXBContextFactory.java:39)
at org.apache.camel.xml.jaxb.DefaultModelJAXBContextFactory.newJAXBContext(DefaultModelJAXBContextFactory.java:29)
at org.apache.camel.xml.jaxb.JaxbHelper.getJAXBContext(JaxbHelper.java:75)
at org.apache.camel.xml.jaxb.JaxbModelToXMLDumper.dumpModelAsXml(JaxbModelToXMLDumper.java:73)
at org.apache.camel.xml.jaxb.JaxbModelToXMLDumper.dumpModelAsXml(JaxbModelToXMLDumper.java:157)
at org.apache.camel.management.mbean.ManagedRoute.dumpRouteAsXml(ManagedRoute.java:394)
at org.apache.camel.management.mbean.ManagedRoute.dumpRouteAsXml(ManagedRoute.java:386)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:72)
at jdk.internal.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at java.base/sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:262)
at [java.management/javax.management.modelmbean.RequiredModelMBean$4.run(RequiredModelMBean.java:1178)](http://java.management/javax.management.modelmbean.RequiredModelMBean$4.run(RequiredModelMBean.java:1178))
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at [java.management/javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1172)](http://java.management/javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1172))
at [java.management/javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:1016)](http://java.management/javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:1016))
at org.apache.camel.support.management.MixinRequiredModelMBean.invoke(MixinRequiredModelMBean.java:72)
at [java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:814)](http://java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:814))
at [java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:802)](http://java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:802))
at org.jolokia.handler.ExecHandler.doHandleRequest(ExecHandler.java:98)
at org.jolokia.handler.ExecHandler.doHandleRequest(ExecHandler.java:40)
at org.jolokia.handler.JsonRequestHandler.handleRequest(JsonRequestHandler.java:89)
at org.jolokia.backend.MBeanServerExecutorLocal.handleRequest(MBeanServerExecutorLocal.java:109)
at org.jolokia.backend.MBeanServerHandler.dispatchRequest(MBeanServerHandler.java:161)
at org.jolokia.backend.LocalRequestDispatcher.dispatchRequest(LocalRequestDispatcher.java:99)
at org.jolokia.backend.BackendManager.callRequestDispatcher(BackendManager.java:429)
at org.jolokia.backend.BackendManager.handleRequest(BackendManager.java:158)
at org.jolokia.http.HttpRequestHandler.executeRequest(HttpRequestHandler.java:197)
at org.jolokia.http.HttpRequestHandler.handlePostRequest(HttpRequestHandler.java:137)
at org.jolokia.jvmagent.handler.JolokiaHttpHandler.executePostRequest(JolokiaHttpHandler.java:292)
at org.jolokia.jvmagent.handler.JolokiaHttpHandler.doHandle(JolokiaHttpHandler.java:238)
at org.jolokia.jvmagent.handler.JolokiaHttpHandler.handle(JolokiaHttpHandler.java:180)
at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:95)
at jdk.httpserver/sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:82)
at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:98)
at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:851)
at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:95)
at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:816)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.util.ServiceConfigurationError: jakarta.xml.bind.JAXBContextFactory: org.glassfish.jaxb.runtime.v2.JAXBContextFactory not a subtype
at java.base/java.util.ServiceLoader.fail(ServiceLoader.java:593)
at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1244)
at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1273)
at java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1309)
at java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1393)
at jakarta.xml.bind.ServiceLoaderUtil.firstByServiceLoader(ServiceLoaderUtil.java:39)
... 49 more
It looks that camel-k integration is not able to run JMX connector
Steps to reproduce
- Setup hawtio console [https://github.com/hawtio/hawtio-online]
- enable the jolokia trait in any camel-k integration
- Route diagram is not rendered
Relevant log output
No response
Camel K version
v2.1.0
I've managed to run an Integration enabling jolokia and it seems on Kubernetes side it is running as expected (java -javaagent:dependencies/lib/main/org.jolokia.jolokia-jvm-1.7.2.jar=discoveryEnabled=false,host=*,port=8778). If I understand correctly, the error you're getting is on Hawtio console side, is it? By default, Camel K is using Camel 4 runtime (based on Camel Quarkus 3). I wonder if you're using a version compatible as it seems the error is complaining about jakarta annotations (which have changed in Camel 4).
The route diagram is correctly visible if I run camel route in Quarkus application using the same versions. The issue is JMX service is not started in the camel-k integration. It looks some configuration error. I got the following debug logs in camel-k integration
[1] 2023-12-18 09:40:41,132 FINE [jak.xml.bind] (jolokia-0) Resolved classes from context path: [class org.apache.camel.BeanScope, class org.apache.camel.model.AggregateDefinition, class org.apache.camel.model.app.ApplicationDefinition, class org.apache.camel.model.cloud.BlacklistServiceCallServiceFilterConfiguration, class org.apache.camel.model.config.BatchResequencerConfig, class org.apache.camel.model.dataformat.ASN1DataFormat, class org.apache.camel.model.errorhandler.DeadLetterChannelDefinition, class org.apache.camel.model.language.CSimpleExpression, class org.apache.camel.model.loadbalancer.CustomLoadBalancerDefinition, class org.apache.camel.model.rest.ApiKeyDefinition, class org.apache.camel.model.transformer.CustomTransformerDefinition, class org.apache.camel.model.validator.CustomValidatorDefinition]
**[1] 2023-12-18 09:40:41,132 FINE [jak.xml.bind] (jolokia-0) Checking system property jakarta.xml.bind.JAXBContextFactory
[1] 2023-12-18 09:40:41,132 FINE [jak.xml.bind] (jolokia-0) not found**
Hi @hdwivedi-ra,
For some Hawtio's Camel features to work with Quarkus, you'd need to add org.apache.camel.quarkus:camel-quarkus-jaxb to the dependencies, because it's required for Camel XML DSL. Maybe you can try running your integration with -d camel:jaxb if it's not present yet.
camel:jaxb is already added
[1] 2023-12-18 09:47:58,616 INFO [io.quarkus] (main) Installed features: [camel-bean, camel-core, camel-java-joor-dsl, camel-jaxb, camel-k-core, camel-k-runtime, camel-kubernetes, camel-management, camel-timer, camel-xml-jaxb, cdi, kubernetes-client, smallrye-context-propagation, vertx]
Just to be sure, are you not using native build for the Camel K integration?
@hdwivedi-ra If you're not, it might be related to the content of the integration you're running. Sharing the integration code that reproduces the issue could help.
@tadayosi Belo is the sample route which I am running
import org.apache.camel.builder.RouteBuilder;
public class hello extends RouteBuilder {
@Override
public void configure() throws Exception {
from("timer:java?period={{time:60000}}")
.setBody()
.simple("Hello Camel from ${routeId}")
.log("${body}");
}
}
I am running below command kamel run hello.java --name hawtio-online-example-camel-k --dev -t jolokia.protocol=https -t jolokia.host=* -t jolokia.port=8778 -t jolokia.use-ssl-client-authentication=false -t jolokia.enabled=true -t logging.level=DEBUG
@tadayosi The behavior is same with the native build also
kamel run hello.java --name hawtio-online-example-camel-k --dev -t jolokia.protocol=https -t jolokia.host= -t jolokia.port=8778 -t jolokia.use-ssl-client-authentication=false -t jolokia.enabled=true -t logging.level=DEBUG -t quarkus.enabled=true -t quarkus.package-type=native*
@hdwivedi-ra OK, thanks. It looks like I can reproduce the issue at hand. I'll look into it further and get back to you.
Hi Camel K team @squakez,
It's really not an issue specific to Hawtio, but you can reproduce it only with Camel K.
For instance, you can use this example https://github.com/hawtio/hawtio-online-examples/blob/main/camel-k/hello.java and run it to a cluster:
kamel run camel-k/hello.java -t jolokia.enabled=true -t jolokia.use-ssl-client-authentication=false
(Here -t jolokia.use-ssl-client-authentication=false is added just for the ease of reproducing the issue, but it's really not essential.)
Then do the following kubectl exec on the running integration pod:
kubectl exec hello-xxxxx -- curl -k https://localhost:8778/jolokia/exec/org.apache.camel:context=camel-1,name=%22route1%22,type=routes/dumpRouteAsXml\(\) | jq
You'll get the same error:
{
"request": {
"mbean": "org.apache.camel:context=camel-1,name=\"route1\",type=routes",
"type": "exec",
"operation": "dumpRouteAsXml()"
},
"stacktrace": "jakarta.xml.bind.JAXBException: Error while searching for service [jakarta.xml.bind.JAXBContextFactory]\n - with linked exception:\n[java.util.ServiceConfigurationError: jakarta.xml.bind.JAXBContextFactory: org.glassfish.jaxb.runtime.v2.JAXBContextFactory not a subtype]\n\tat jakarta.xml.bind.ContextFinder$1.createException(ContextFinder.java:85)\n\tat jakarta.xml.bind.ContextFinder$1.createException(ContextFinder.java:82)\n\tat jakarta.xml.bind.ServiceLoaderUtil.firstByServiceLoader(ServiceLoaderUtil.java:46)\n\tat jakarta.xml.bind.ContextFinder.find(ContextFinder.java:319)\n\tat jakarta.xml.bind.JAXBContext.newInstance(JAXBContext.java:392)\n\tat jakarta.xml.bind.JAXBContext.newInstance(JAXBContext.java:349)\n\tat org.apache.camel.xml.jaxb.DefaultModelJAXBContextFactory.newJAXBContext(DefaultModelJAXBContextFactory.java:39)\n\tat org.apache.camel.xml.jaxb.DefaultModelJAXBContextFactory.newJAXBContext(DefaultModelJAXBContextFactory.java:29)\n\tat org.apache.camel.xml.jaxb.JaxbHelper.getJAXBContext(JaxbHelper.java:75)\n\tat org.apache.camel.xml.jaxb.JaxbModelToXMLDumper.dumpModelAsXml(JaxbModelToXMLDumper.java:73)\n\tat org.apache.camel.xml.jaxb.JaxbModelToXMLDumper.dumpModelAsXml(JaxbModelToXMLDumper.java:157)\n\tat org.apache.camel.management.mbean.ManagedRoute.dumpRouteAsXml(ManagedRoute.java:394)\n\tat org.apache.camel.management.mbean.ManagedRoute.dumpRouteAsXml(ManagedRoute.java:386)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:568)\n\tat sun.reflect.misc.Trampoline.invoke(MethodUtil.java:72)\n\tat jdk.internal.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:568)\n\tat java.base/sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:262)\n\tat java.management/javax.management.modelmbean.RequiredModelMBean$4.run(RequiredModelMBean.java:1178)\n\tat java.base/java.security.AccessController.doPrivileged(AccessController.java:399)\n\tat java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)\n\tat java.management/javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1172)\n\tat java.management/javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:1016)\n\tat org.apache.camel.support.management.MixinRequiredModelMBean.invoke(MixinRequiredModelMBean.java:72)\n\tat java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:814)\n\tat java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:802)\n\tat org.jolokia.handler.ExecHandler.doHandleRequest(ExecHandler.java:98)\n\tat org.jolokia.handler.ExecHandler.doHandleRequest(ExecHandler.java:40)\n\tat org.jolokia.handler.JsonRequestHandler.handleRequest(JsonRequestHandler.java:89)\n\tat org.jolokia.backend.MBeanServerExecutorLocal.handleRequest(MBeanServerExecutorLocal.java:109)\n\tat org.jolokia.backend.MBeanServerHandler.dispatchRequest(MBeanServerHandler.java:161)\n\tat org.jolokia.backend.LocalRequestDispatcher.dispatchRequest(LocalRequestDispatcher.java:99)\n\tat org.jolokia.backend.BackendManager.callRequestDispatcher(BackendManager.java:429)\n\tat org.jolokia.backend.BackendManager.handleRequest(BackendManager.java:158)\n\tat org.jolokia.http.HttpRequestHandler.executeRequest(HttpRequestHandler.java:197)\n\tat org.jolokia.http.HttpRequestHandler.handleGetRequest(HttpRequestHandler.java:86)\n\tat org.jolokia.jvmagent.handler.JolokiaHttpHandler.executeGetRequest(JolokiaHttpHandler.java:278)\n\tat org.jolokia.jvmagent.handler.JolokiaHttpHandler.doHandle(JolokiaHttpHandler.java:235)\n\tat org.jolokia.jvmagent.handler.JolokiaHttpHandler.handle(JolokiaHttpHandler.java:180)\n\tat jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:95)\n\tat jdk.httpserver/sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:82)\n\tat jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:98)\n\tat jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:851)\n\tat jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:95)\n\tat jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:816)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\n\tat java.base/java.lang.Thread.run(Thread.java:840)\nCaused by: java.util.ServiceConfigurationError: jakarta.xml.bind.JAXBContextFactory: org.glassfish.jaxb.runtime.v2.JAXBContextFactory not a subtype\n\tat java.base/java.util.ServiceLoader.fail(ServiceLoader.java:593)\n\tat java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1244)\n\tat java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1273)\n\tat java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1309)\n\tat java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1393)\n\tat jakarta.xml.bind.ServiceLoaderUtil.firstByServiceLoader(ServiceLoaderUtil.java:39)\n\t... 49 more\n",
"error_type": "jakarta.xml.bind.JAXBException",
"error": "jakarta.xml.bind.JAXBException : Error while searching for service [jakarta.xml.bind.JAXBContextFactory]",
"status": 500
}
So, as you can see, the root issue is that the MBean operation dumpRouteAsXml() doesn't somehow work on a cluster while it does locally. It must be related to be the way the container image is built with Camel K.
Could anyone of you look at the issue from Camel K side?
Thanks @tadayosi for such detailed reproducer. We can have a look and see what could be the root cause. However, it seems something related to the runtime. Is this something reproducible also in a Camel Quarkus regular application? my gut feeling is that the Quarkus optimization is cutting something that would be required at runtime when running via jmx.
I re-read some of the comments above and it seems the reporter manages to run it properly in Camel Quarkus regular app. We'll have a look asap.
@squakez Good point. We have another example which is a pure Camel Quarkus application: https://github.com/hawtio/hawtio-online-examples/tree/main/camel-quarkus When you follow the README and run the example locally:
java -javaagent:target/quarkus-app/lib/main/org.jolokia.jolokia-agent-jvm-2.0.0-M4-agent.jar -jar target/quarkus-app/quarkus-run.jar
the Route Diagram view works just fine, meaning dumpRouteAsXml() operation works fine too.
If you look at the dependencies part of its pom.xml, there's no special dependencies to make it work. Maybe you can compare it with those of Camel K app to see any differences, but I'd rather suspect it's caused by the difference of the choice of base Java image or JDK.
the issue is the fact that camel-k operator does not add any xml related dependency if not needed by the routes whereas the example by @tadayosi does https://github.com/hawtio/hawtio-online-examples/blob/main/camel-quarkus/pom.xml#L110-L116
we may need to automatically add the xml deps in case that the jolokia trait is enabled
the issue is the fact that camel-k operator does not add any xml related dependency if not needed by the routes whereas the example by @tadayosi does https://github.com/hawtio/hawtio-online-examples/blob/main/camel-quarkus/pom.xml#L110-L116
we may need to automatically add the xml deps in case that the jolokia trait is enabled
We can simply try adding the dependency in the test then. If it works we can include such a dependency in the jolokia trait.
That does not seems to be the problem. There was a minor change required in the runtime catalog as the JAXB dependency was still pointing to Camel and not to Quarkus (I think it was not available in Camel Quarkus 2.x). I've fixed that. However, even with that changed or forcefully trying to add the dependency, the error I got is the same.
maybe there are some spurious dependencies making thing failing, has the new kit be created from scratch ?
maybe there are some spurious dependencies making thing failing, has the new kit be created from scratch ?
Yes. What I am looking now is the jolokia version. As we are using 1.7.2 whilst in the working examples it already uses 2.0.0-Mx.
yeah, that may be an issue since the move from javax to jakarta maybe
I tried the Camel Quarkus examples with jolokia 1.7.2 and it seems it works correctly. I've also used the same set of dependencies for Camel 4. I wonder if this may be some classpath problem caused by the Camel K Runtime layer. Looking at the comment here [1] I wonder if that is a possibility.
[1] https://github.com/apache/camel-k/issues/4990#issuecomment-1859942196
It worked with camel-k-runtime 3.2.3 by using the camel trait -t camel.runtime-version=3.2.3
Camel K 2.2 (main branch, unreleased) also works, so the original errors seems to be some transitive dependency, which I haven't looked at.
Thanks @claudio4j for looking at it. If it is solved with the new released runtime, I guess we can close this issue. @hdwivedi-ra cold you please check on your side and confirm if that works for you as well?
@squakez I have kamel v2.1 how can I install camel-k runtime version 3.2.3? I want to install it in a new K8s namespace.
@squakez I have kamel v2.1 how can I install camel-k runtime version 3.2.3? I want to install it in a new K8s namespace.
You need to specify the Camel runtime property trait: https://camel.apache.org/camel-k/2.1.x/running/runtime-version.html - you can specify this in each Integration or configure the IntegrationPlatform to inherit in all your Integrations. If you run via kamel CLI, then, you can use the option -t camel.runtime-version=3.2.3. Otherwise you need to specify in the Integration trait list.
@claudio4j
./kamel run hello.java -t jolokia.protocol=https -t jolokia.host=* -t jolokia.port=8778 -t jolokia.use-ssl-client-authentication=false -t jolokia.enabled=true --name hello -t camel.runtime-version=3.2.3
When using -t camel.runtime-version=3.2.3 I get the response Integration "hello" created. However no pod is created and nothing is displayed in hawtio console.
I just want to confirm if there is not need to update the camel-k environment to use the trait -t camel.runtime-version=3.2.3
It sounds weird. The Integration and related Deployment/Pod should be created and the runtime used should be the new one you specified. Mind that it would probably run a new build to get all the set of dependencies. What is the status of the new Integration?
It is showing error in logs
Okey, thanks. Could you please run the following kubectl get it hello -o yaml? so we can check why the integration is on error. In general, you can have a look at the troubleshooting guide when there is any Integration failure.
It is showing error in logs
You can also look at the camel-k-operator logs: kubectl logs -f $(kubectl get pod -l app=camel-k -oname)
Okey, thanks. Could you please run the following
kubectl get it hello -o yaml? so we can check why the integration is on error. In general, you can have a look at the troubleshooting guide when there is any Integration failure.
apiVersion: camel.apache.org/v1 kind: Integration metadata: annotations: camel.apache.org/operator.id: camel-k creationTimestamp: "2024-01-02T09:12:19Z" generation: 2 name: hello namespace: default resourceVersion: "297350067" uid: 066a907f-e4bb-4614-9368-efb006258fea spec: sources:
- content: "// camel-k: language=java\r\n\r\nimport org.apache.camel.builder.RouteBuilder;\r\n\r\npublic class hello extends RouteBuilder {\r\n\r\n @Override\r\n public void configure() throws Exception {\r\n from("timer:java?period={{time:60000}}")\r\n \ .setBody()\r\n .simple("Hello Camel from ${routeId}")\r\n \ .log("${body}");\r\n }\r\n}\r\n" name: hello.java traits: camel: runtimeVersion: 3.2.3 jolokia: enabled: true host: '*' port: 8778 protocol: https useSSLClientAuthentication: false logging: level: DEBUG status: conditions:
- lastTransitionTime: "2024-01-02T09:29:36Z" lastUpdateTime: "2024-01-02T09:29:36Z" message: 'error during trait customization: camel trait execution failed: : signal: killed' reason: InitializationFailed status: "False" type: Ready digest: v3GdJrE_fTCMOkSm4skzG9Zv-FR2BpdPASV7K7igW0B8 observedGeneration: 2 phase: Error