Forum Discussion

wenesmad's avatar
Occasional Contributor
6 years ago

Testrunner throws java.lang.NoClassDefFoundError: sun/misc/BASE64Decoder exception

Hi community, I have a set of tests. When I run them in SoapUI, it's fine no error. However, when I run them using testrunner, I get errors like:

C:\Tools\SoapUI-5.4.0\bin>testrunner.bat ..\test-soapui-project.xml
2019-01-10 09:48:30,041 [main] WARN com.eviware.soapui.SoapUI - Could not find jfxrt.jar. Internal browser will be disabled.
SoapUI 5.4.0 TestCase Runner
Configuring log4j from [C:\Tools\SoapUI-5.4.0 Copy\bin\soapui-log4j.xml]
09:48:30,520 INFO [DefaultSoapUICore] initialized soapui-settings from [C:\Users\pc\soapui-settings.xml]
09:48:31,459 INFO [PluginManager] 0 plugins loaded in 0 ms
09:48:31,459 INFO [DefaultSoapUICore] All plugins loaded Exception in thread "main" java.lang.NoClassDefFoundError: sun/misc/BASE64Decoder at at at at at at at at Caused by: java.lang.ClassNotFoundException: sun.misc.BASE64Decoder at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass( at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass( at java.base/java.lang.ClassLoader.loadClass( ... 8 more


I've been googling around and it seems that sun/misc/BASE64Decoder has been deprecated since JAVA 9. I'm using JDK 11 and Soapui open source version 5.4.0. Does anyone know if there is a way to fix this? Again, It only happens with testrunner. 

9 Replies

  • KonstantinosLps's avatar
    Occasional Contributor

    Hi wenesmad,

    indeed :

    • sun.misc.BASE64Encoder  is available for Java <= 8
    • java.util.Base64 is available in Java >= 8

    have you tried using java.util.Base64?




    • wenesmad's avatar
      Occasional Contributor

      Hi Konstantinos, 


      Thanks for the reply. How can we change Testrunner to use java.util.Base64 instead of sun.misc.BASE64Encoder?



      • KonstantinosLps's avatar
        Occasional Contributor

        If you use base64 in groovy, somethink like this can do the trick:


        import  java.util.Base64
        //Set string
        def s = 'Test String'
        //Encode with Base64
        String encoded = s.bytes.encodeBase64().toString() encoded
        //Assert the expected encoded string is the right one
        assert 'VGVzdCBTdHJpbmc=' == encoded
        //Decode with Base64
        byte[] decoded = encoded.decodeBase64()
        //Assert is equals
        assert s == new String(decoded) s

        Do you get the error somewhere else?