Я столкнулся с проблемой того, что один и тот же .jar(для моего случая, el-api.jar v2.1) дважды для одного проекта, следовательно, следующий стек ошибок, когда я пытаюсь запустить мой проект с помощью Tomcat 6.
WARNING: Unexpected error forwarding to login page
javax.servlet.ServletException: java.lang.LinkageError: loader constraint violation: when resolving interface method "javax.servlet.jsp.JspApplicationContext.getExpressionFactory()Ljavax/el/ExpressionFactory;" the class loader (instance of org/apache/jasper/servlet/JasperLoader) of the current class, org/apache/jsp/login_jsp, and the class loader (instance of org/apache/catalina/loader/StandardClassLoader) for resolved class, javax/servlet/jsp/JspApplicationContext, have different Class objects for the type javax/el/ExpressionFactory used in the signature
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.LinkageError: loader constraint violation: when resolving interface method "javax.servlet.jsp.JspApplicationContext.getExpressionFactory()Ljavax/el/ExpressionFactory;" the class loader (instance of org/apache/jasper/servlet/JasperLoader) of the current class, org/apache/jsp/login_jsp, and the class loader (instance of org/apache/catalina/loader/StandardClassLoader) for resolved class, javax/servlet/jsp/JspApplicationContext, have different Class objects for the type javax/el/ExpressionFactory used in the signature
Я нашел http://blog.springsource.com/2008/10/20/understanding-the-osgi-uses-directive/
но это не полезно, поскольку решение влияет на слишком много частей моего проекта.
Я не могу вносить какие-либо изменения в Tomcat, а также проект будет использоваться многими другими пользователями.
Текущая работа заключается в том, чтобы manuelly удалить el-api.jar каждый раз, когда мы делаем build и использует Tomcat6. Затем нам нужно поместить .jar обратно, поскольку это требуется для других вещей.
Я использую Maven 2 и Maven 3 для сборки. (Кстати, кто-нибудь знал об использовании Maven3 на Jruby?)
Может ли кто-нибудь помочь мне в этом вопросе?