Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Dear Community,
Up to now, we are using Talend Open Studio For Big Data 7.3.1 with Oracle java version "1.8.0_231".
We have to remove any Oracle Java component, so based on your recommandations (https://help.talend.com/r/en-US/7.3/installation-guide-windows/compatible-java-environments), we installed OpenJDK Azul Zulu 11.68.17 , then we activated it such as primary JDK (PATH setting).
Then we are facing the following issue, we get the error message :
Exception in thread "Thread-1" java.lang.NoClassDefFoundError: sun/misc/BASE64Encoder
...
Caused by: java.lang.ClassNotFoundException: sun.misc.BASE64Encoder
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:527)
Here's a part of the code of some jobs :
String s = context.jira_gdpr_user + ":" + context.jira_gdpr_pwd;
globalMap.put("authorization",
new sun.misc.BASE64Encoder().encode(s.getBytes()).replace("\r", "").replace("\n", ""));
Because we have a lot of jobs using this class and we don't wish to modify all those jobs, what's the best way to fix this issue ?
Are there any other knowed issues due to this JDK migration ?
Regards,
Hi Sabrina,
Yes, we finally decided to replace the used code for JDK 8 by
import java.util.Base64;
// ...
String encoded = Base64.getEncoder().encodeToString(bBytes);
byte[] decoded = Base64.getDecoder().decode(encoded);
Regards,
To Fix it : https://stackoverflow.com/questions/62193303/java-11-patch-sun-misc-base64encoder
Hello,
Thanks for posting this issue here. Is there any update for it?
Was it already resolved on your side from java-11-patch-sun-misc-base64encoder?
Best regards
Sabrina
Hi Sabrina,
Yes, we finally decided to replace the used code for JDK 8 by
import java.util.Base64;
// ...
String encoded = Base64.getEncoder().encodeToString(bBytes);
byte[] decoded = Base64.getDecoder().decode(encoded);
Regards,
Hello,
Thanks for your prompt reply and sharing the solution us on Community.
Best regards
Sabrina