Как разрешить конфликты версий зависимостей (NoSuchMethodError's) - PullRequest
1 голос
/ 31 июля 2011

В моем приложении Spring 3.0.5 Web MVC я определил класс модели со свойством, аннотированным @SafeHtml. Когда Spring пытается проверить этот объект модели, он взрывается со следующим:

HTTP ERROR: 500

org.jsoup.Jsoup.isValid(Ljava/lang/String;Lorg/jsoup/safety/Whitelist;)Z
RequestURI=/guestbook/process-new-entry

Caused by:

java.lang.NoSuchMethodError: org.jsoup.Jsoup.isValid(Ljava/lang/String;Lorg/jsoup/safety/Whitelist;)Z
    at org.hibernate.validator.constraints.impl.SafeHtmlValidator.isValid(SafeHtmlValidator.java:62)
    at org.hibernate.validator.constraints.impl.SafeHtmlValidator.isValid(SafeHtmlValidator.java:34)
    at org.hibernate.validator.engine.ConstraintTree.validateSingleConstraint(ConstraintTree.java:278)
    ... (abbreviated)

Я понимаю, что это связано с тем, что я не использовал нужную версию Jsoup. (Я использую 0.2.2) В этой версии, которую я использую, сигнатура метода для isValid () изменилась или была полностью удалена. Поэтому, чтобы решить эту проблему, я считаю, что я должен использовать другую версию Jsoup. Я прав?

Гипотетически, что если я захочу продолжать использовать версию, которую я сейчас использую - какая другая часть нуждается в изменении версии? Это валидатор Hibernate?

Кроме того, кто-нибудь может предложить способ узнать , какую версию Jsoup использовать? Как вы обычно разрешаете подобные ошибки?

И, последний вопрос: что означает буква "Z" в конце строки? Я иногда сталкиваюсь и с другими письмами. Что означают эти буквы? Это где-нибудь задокументировано?

Спасибо всем заранее за то, что помогли мне прийти к лучшему пониманию того, как эти несоответствия версий должны быть устранены, поэтому мне не нужно было бы тратить так много моего времени в будущем ... Ура!

1 Ответ

2 голосов
/ 31 июля 2011
  1. Да
  2. Если вы хотите продолжать использовать Jsoup 0.2.2, вам придется посмотреть, есть ли версия hibernate-validator, которая будет работать с этой версией, что маловероятно, так как ядумаю, что ограничение @SafeHtml довольно новое, или вам нужно посмотреть, сможете ли вы изменить исходный код для работы с этой версией.
  3. Если вы хотите получить точный ответ, на который ожидает спящий режим Jsoup, вы можетепроверьте, какую версию артефакта валидатора вы используете.Они легко доступны в maven central .
  4. "Z" - дескриптор типа для примитивного логического типа.В спецификации ВМ есть таблица , в которой перечислены возможные значения.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...