Kbase 20333: NoClassDefFoundError: Promsgsfile on Unix
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  29/01/2009 |
|
Status: Verified
SYMPTOM(s):
java.lang.NoClassDefFoundError: com.progress.common.util.PromsgsFile (initialization failure)
Trying to connect from ABL to SonicMQ using SMQConnect fails
Failed to get AIA Status with HTTP STATUS error 500
http://hostname:8080/aia/Aia returns HTTP Status 500
The Java exception slightly differs depending on the Java Servlet Engine JSE used.
javax.servlet.UnavailableException: java.lang.NoClassDefFoundError
javax.servlet.ServletException: Error allocating a servlet instance
java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet
java.lang.UnsatisfiedLinkError
Message (excp): $DLC/bin/jni_util.dll: libjutil.so: cannot open shared object file: No such file or directory
Message (excp): $DLC/bin/jni_util.dll: No such file or directory
Stack Trace: java.lang.UnsatisfiedLinkError: $DLC/bin/jni_util.dll: No such file or directory at com.progress.common.log.LogSystem.
Problem occurs when AppServer Internet Adapter resides on a Unix box
FACT(s) (Environment):
Progress 9.1D
Progress 9.1B
Progress 9.1C
UNIX
OpenEdge 10.x
CAUSE:
The library path is not properly set.
FIX:
Set the library path variable before starting JRun, Tomcat, or ServletExec or _progres correctly.
For ServletExec:
Put following 2 lines with StartServletExec and restart your instance.
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DLC/lib
export LD_LIBRARY_PATH
For JRUN:
When setting it within the JRun startup script file(/Jrun/bin/jrun), do the following:
1. Include $DLC/lib in this variable.
2. The variable name differs depending on the operating system. For example: LIBPATH for AIX, SHLIB_PATH for HP-UX, and LD_LIBRARY_PATH for Solaris.
3. The jrun script already sets the variable, so make sure you include the new value before the variable is exported, otherwise its value is overwritten by the script and you still see the error.
Instead of running _progres run pro , bpro or mpro instead which set the environment variables for you.