Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi all,
I have a job that incldes a tRest component which calls a web-service.
All is configured well, but when running the job I get the following warning :
jul. 30, 2024 10:07:31 A.M. org.glassfish.jersey.client.innate.inject.NonInjectionManager <init>
WARNING: Falling back to injection-less client.
The call to the webservice succeeds, data is retreivable, but where comes this warning from ? I reinstalled Talend Studio, upgaded to R2024-07, installed the additional libraries when I open the job for the first time.
What can be wrong ??
You can ignore this message. This message tells us the client cannot use byte code injection but Talend do not use this method. It is actually an error of the component itself because of a missing jar.
If you can, ignore this!
Getting same error. Lot of my jobs are failing with this error - Lesson learned. Never update Talend
You can ignore this message. This message tells us the client cannot use byte code injection but Talend do not use this method. It is actually an error of the component itself because of a missing jar.
If you can, ignore this!
Thats for sure not the right lesson learned. If you do not update frequently you will run into some other trouble. Yes this component is a bad configured because a dependency is not taken which would prevent this error message. This error message does not affect our jobs or services because the client complaints it cannot use byte code injection but Talend does not use this feature at all.
Thanks Jan,
I will ignore the message since everything works fine. As for the 'missing' jar, is it an option to add the jar in someway ?
Yes, download this jar: https://repo1.maven.org/maven2/org/glassfish/jersey/inject/jersey-hk2/3.1.7/jersey-hk2-3.1.7.jar
and added it per tLibraryLoad to your job. This should solve the error message.
Hello there, I encountered the same error and tried to add the jar by tLibraryLoad.
The configuration :
I get an error :
Exception in thread "main" java.lang.NoClassDefFoundError: org/glassfish/hk2/api/ServiceLocatorFactory
at org.glassfish.jersey.inject.hk2.AbstractHk2InjectionManager.<clinit>(AbstractHk2InjectionManager.java:51)
at org.glassfish.jersey.inject.hk2.Hk2InjectionManagerFactory$Hk2InjectionManagerStrategy$1.createInjectionManager(Hk2InjectionManagerFactory.java:55)
at org.glassfish.jersey.inject.hk2.Hk2InjectionManagerFactory.create(Hk2InjectionManagerFactory.java:73)
at org.glassfish.jersey.internal.inject.InjectionManagerFactory.create(InjectionManagerFactory.java:32)
at org.glassfish.jersey.internal.inject.Injections.createInjectionManager(Injections.java:56)
at org.glassfish.jersey.client.ClientConfig$State.findInjectionManager(ClientConfig.java:477)
at org.glassfish.jersey.client.ClientConfig$State.initRuntime(ClientConfig.java:414)
at org.glassfish.jersey.internal.util.collection.Values$LazyValueImpl.get(Values.java:317)
at org.glassfish.jersey.client.ClientConfig.getRuntime(ClientConfig.java:829)
at org.glassfish.jersey.client.ClientRequest.getClientRuntime(ClientRequest.java:183)
at org.glassfish.jersey.client.JerseyWebTarget.onBuilder(JerseyWebTarget.java:371)
at org.glassfish.jersey.client.JerseyWebTarget.request(JerseyWebTarget.java:199)
at org.glassfish.jersey.client.JerseyWebTarget.request(JerseyWebTarget.java:38)
Caused by: java.lang.ClassNotFoundException: org.glassfish.hk2.api.ServiceLocatorFactory
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
Had the same issue - the component tRest seems to work just fine. With loading the tLibrary for jersey-hk... it fails catastrophically.
Hello,
tREST is a DI component not an ESB component, which is based on jersey libraries.
tRESTClient is an ESB component, is based on CXF framework, and support more ESB features e.g SAM/SL/Authentication, moreover, the Job with tRESTClient is able to be built as OSGi bundle which can be deployed into Talend Runtime.
It is better to use tRESTClient if you want to deploy and manage it using Runtime (SSL config for service/client can be defined inside org.apache.cxf.http.conduits-common.cfg)
Best regards
Sabrina
Hey,
I also tried to inport the libary, but then it asks which class I want to import. Got no idea, so I stopped. Since the compontent works fine, besides the error, I left it like it is.
But in order to get an error-free flow, I start using other components like tHTTP, tHTTPClient
It does nearly the same thing.
Jacco