Исключение для бейнирования в весенний mvc [дубликат]

Если вы не хотите использовать js, я думаю, вы можете использовать <a href="javascript:void(0);"></a> вместо img, а затем использовать css, например

a {
  background: url('oldImage.png');
}
a:visited {
  background: url('newImage.png');
}

EDIT: Nope. Извините, он работает только для :hover

5
задан Florian Tavares 2 October 2015 в 17:36
поделиться

6 ответов

Эта проблема была вызвана конфликтом в банках модулей JBoss. Замена файла jboss-logging его последней версией решила проблему для меня. Файл находится в папке modules\system\layers\base\org\jboss\logging\main

Кроме того, вы должны заменить имя jar в файле module.xml новым именем jar. Файл находится в той же папке.

1
ответ дан Ahmed Tawila 17 August 2018 в 11:57
поделиться

Метод org.jboss.logging.Logger.debugf доступен только в версии 3.3.0 jboss-logging, если у вас есть эта зависимость в вашем проекте, вы также должны проверить, что ваш сервер GlassFish также имеет ту же версию. У меня было такое же сообщение об ошибке, и я решил его заменить jboss-logging.jar в папке установки Glassfish, потому что эта банка является предыдущей версией и у нее нет необходимого метода. Например, у меня есть jar в следующем пути:

C:\Program Files\glassfish-4.1.1\glassfish\modules\jboss-logging.jar

Я удалил старую банку, и я поставил новую банку с тем же именем, но с версией 3.3.0. Просто перезапустите сервер GlassFish, и он возьмет новую версию jar, и все.

4
ответ дан AngelAvila 17 August 2018 в 11:57
поделиться

У меня была аналогичная проблема, я смог ее исправить, создав файл glassfish-web.xml в каталоге WEB-INF. Содержимое файла показано ниже:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app>
     <class-loader delegate="false"/>
</glassfish-web-app>

Это гарантирует, что стеклянная рыба не загрузит его внутренние библиотеки, а библиотеки из вашего проекта.

6
ответ дан Goke Obasa 17 August 2018 в 11:57
поделиться

Я нашел шаги в этой статье полезными при разрешении ошибки. http://sanjayingole.blogspot.in/2015/10/caused-by-javalangnosuchmethoderror.html

Шаги, которые следует выполнить коротким (если использовать Eclipse) -

  1. Проверьте наличие зависимостей ALL "jboss-logging" в иерархии зависимостей в pom.xml и исключите все эти зависимости.
     <dependency> 
         <groupId>org.hibernate</groupId> 
         <artifactId>hibernate-entitymanager</artifactId> 
        <version>${hibernate.version}</version>
        <exclusions>            
            <exclusion>
                <artifactId>jboss-logging</artifactId>
                <groupId>org.jboss.logging</groupId>
            </exclusion>
        </exclusions>
     </dependency>
    
  2. Используйте версию jboss-logging, которая имеет этот метод. Как было предложено по ссылке, 3.2.0.Final.
     <dependency>
                <artifactId>jboss-logging</artifactId>
                <groupId>org.jboss.logging</groupId>            
                <version>3.2.0.Final</version>
     </dependency>
    
1
ответ дан KeshavJha 17 August 2018 в 11:57
поделиться

hibernate-entitymanager введет jboss-logging как зависимость, но не является самой последней версией и не имеет этого метода. Похоже, вам не нужен jboss-logging, поэтому попробуйте исключить его:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>5.0.1.Final</version>
    <exclusions>
        <exclusion>
            <groupId>org.jboss.logging</groupId>
            <artifactId>jboss-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>

Или, если окажется, что вам нужно jboss-logging для спящего режима, затем добавьте более позднюю версию jboss-logging как дополнительная зависимость.

<dependency>
    <groupId>org.jboss.logging</groupId>
    <artifactId>jboss-logging</artifactId>
    <version>3.3.0.Final</version>
</dependency>
5
ответ дан LucasP 17 August 2018 в 11:57
поделиться
  • 1
    Спасибо @ LucasP. Ваше решение не сработало, jar in target / {artifact} / WEB-INF / lib уже был хорошей версией. Я решил проблему, переместив банку под стеклофитом \ модули на банку целевой папки. Думаю, у Glassfish была устаревшая версия библиотеки. Но я не понимаю, почему Glassfish пытается использовать свою собственную банку, когда в приложении есть то же самое встроенное приложение. Не должно быть проще, если он использовал тот, который был загружен Maven? – Florian Tavares 7 October 2015 в 19:22
  • 2
    Я никогда не использовал Glassfish, поэтому я не знал об этой возможности. Это звучит очень похоже на проблему, с которой я столкнулся с JBoss в прошлом. В случае с JBoss можно добавить обновленную банку в отдельное место и указать ее из вашей конфигурации приложения, а не обновлять ее по всему миру. – LucasP 7 October 2015 в 20:33

Если вы используете майку из стекловолокна, то bean-validator приходит как зависимость, а tomcat, конечно же, пытается загрузить из нее класс Logger.

Классы-валидаторы также содержат класс Logger в том же пакете.

Исключить банку, чтобы решить проблему

<dependency>
            <groupId>org.glassfish.jersey.ext</groupId>
            <artifactId>jersey-spring3</artifactId>
            <version>2.24.1</version>
            <exclusions>
                <exclusion>
                    <artifactId>spring-aop</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>bean-validator</artifactId>
                    <groupId>org.glassfish.hk2.external</groupId>
                </exclusion>
            </exclusions>
        </dependency>
0
ответ дан Tome 17 August 2018 в 11:57
поделиться
  • 1
    Вам нужно правильно отформатировать этот ответ. Вы включили некод в форматирование кода. – lax1089 15 May 2017 в 18:09
Другие вопросы по тегам:

Похожие вопросы: