Сначала фон:
- Tomcat 6.0 в WindowsXP и OpenSUSE SLED 11.0 (одинаковые результаты на обеих платформах)
- Oracle JDK v6
- Spring 3.0
- Javolution 5.5.1
У меня странная проблема с jar (javolution-5.5.1.jar), который использует мое приложение.У меня была эта банка в WEB-INF / lib в течение некоторого времени без каких-либо проблем.Мы определили, что этот jar-файл действительно должен находиться в директории lib Tomcat, а не в директории lib нашего приложения, потому что он используется несколькими приложениями, поэтому мы переместили его.
Однако это вызвало новую исключительную ситуацию RuntimeException, которая пытается получить доступ к классу (Scinv), который расширяет Struct из javolution.jar.Есть ли какая-то причина, по которой приложение не сможет получить доступ к классу в JAR из директории lib Tomcat таким образом?
Мой класс (несущественные детали удалены):
import javolution.io.Struct;
public class Scinv extends Struct {
public static methodA() {...}
public static methodB() {...}
public static class ProdRecs extends Struct {...}
public static class ProdRec extends Struct {...}
}
Когда я пытаюсь получить доступ к статическим методам Scinv, которые используют статические вложенные классы, я получаю это:
Apr 5, 2011 3:40:50 PM org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet inventory threw exception
java.lang.RuntimeException: Struct class: general.dao.externalfiles.Scinv$ProdRec not found
at javolution.io.Struct.array(Struct.java:557)
at general.dao.externalfiles.Scinv$ProdRecs.<init>(Scinv.java:447)
Apr 5, 2011 3:40:50 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet default threw exception
java.lang.RuntimeException: Struct class: general.dao.externalfiles.Scinv$ProdRec not found
at javolution.io.Struct.array(Struct.java:557)
at general.dao.externalfiles.Scinv$ProdRecs.<init>(Scinv.java:447)
Все, что мне нужно сделать, это переместить javolution-5.5.1.jarиз Tomcat / lib в мой каталог WEB-INF / lib, и приложение снова работает нормально, исключений RuntimeExceptions.
Есть идеи, почему это не удается?У нас также есть файл postgres-9.0.jar в Tomcat / lib dir, и он, кажется, работает нормально.
Я был бы рад предоставить более подробную информацию, если они вам понадобятся, и любые предложения будут оценены, так как я отчасти озадачен этим!