Why does Adapter SDK (java) throw java.lang.NoClassDefFoundError: iaik/utils/Base64OutputStream exception while accessing server-based repository?

Why does Adapter SDK (java) throw java.lang.NoClassDefFoundError: iaik/utils/Base64OutputStream exception while accessing server-based repository?

book

Article ID: KB0090766

calendar_today

Updated On:

Products Versions
TIBCO Adapter SDK -
Not Applicable -

Description

Resolution:
Symptom:
==========
Adapter SDK (java) throws java.lang.NoClassDefFoundError: iaik/utils/Base64OutputStream exception while accessing server-based repository

java.lang.NoClassDefFoundError: iaik/utils/Base64OutputStream

      at java.lang.Class.forName0(Native Method)

      at java.lang.Class.forName(Class.java:141)

      at com.tibco.security.impl.c.init(SecurityVendor.java)

      at com.tibco.security.impl.c.init(SecurityVendor.java)

      at com.tibco.security.impl.e.init(CryptoVendor.java)

      at com.tibco.security.impl.e.getInstance(CryptoVendor.java)

      at com.tibco.security.Crypto.rename(Crypto.java:61)

      at
com.tibco.security.ObfuscationEngine.encrypt(ObfuscationEngine.java:254)

      at
com.tibco.infra.repository.RemoteDiscoverer.a(RepoFactory.java:7171)
....

Cause:
==========

The error is due to the missing entrust class file while RepoClient decrypt encrypted password.

Entrust Jar files are required to be specified in the CLASSPATH if a Java Adapter
connects to *security enabled* Repository Server/TIBCO Administrator Server.


Solution:
=========

If security is not required, you may also disable "Security" of your TIBCO Administrator/
repo server, this error.

You need to make sure that the classpath includes the Entrust jar files under \tibco\tcpl\5.x\lib\entrust. For example:

set TPCL_ROOT=C:\tibco\tpcl\5.X
set
CLASSPATH=%CLASSPATH%;%TPCL_ROOT%\lib\entrust;%TPCL_ROOT%\lib\entr
ust\entbase.jar;%TPCL_ROOT%\lib\entrust\entcertlist.jar;%TPCL_ROOT
%\lib\entrust\entcms.jar;%TPCL_ROOT%\lib\entrust\enteli.jar;%TPCL_
ROOT%\lib\entrust\enthttp.jar;%TPCL_ROOT%\lib\entrust\entjsse.jar;
%TPCL_ROOT%\lib\entrust\entkeystore.jar;%TPCL_ROOT%\lib\entrust\en
tmisc.jar;%TPCL_ROOT%\lib\entrust\entnsext.jar;%TPCL_ROOT%\lib\ent
rust\entp10.jar;%TPCL_ROOT%\lib\entrust\entp11.jar;%TPCL_ROOT%\lib
\entrust\entp12.jar;%TPCL_ROOT%\lib\entrust\entp5.jar;%TPCL_ROOT%\
lib\entrust\entp7.jar;%TPCL_ROOT%\lib\entrust\entroaming.jar;%TPCL
_ROOT%\lib\entrust\entserverlogin.jar;%TPCL_ROOT%\lib\entrust\ents
mime.jar;%TPCL_ROOT%\lib\entrust\entsmimev3.jar;%TPCL_ROOT%\lib\en
trust\entssl.jar;%TPCL_ROOT%\lib\entrust\enttunnel.jar;%TPCL_ROOT%
\lib\entrust\entuser.jar;%TPCL_ROOT%\lib\entrust\entxml.jar;

If you use the wrapper to run your java application, you don't have to add specific jar files
to the class path.  Just add %TPCL_ROOT%/lib/entrust to tibco.class.path.extended
in the tra file. The rest will be taken care of by wrapper.

Issue/Introduction

Why does Adapter SDK (java) throw java.lang.NoClassDefFoundError: iaik/utils/Base64OutputStream exception while accessing server-based repository?