Пока нет «хорошего» решения. Однако вы можете значительно сузить аргумент типа, чтобы исключить многие ошибки для вашего гипотетического «INumeric» ограничения, как показано выше.
static bool IntegerFunction & lt; T & gt; (значение T), где T: IComparable, IFormattable, IConvertible, IComparable & lt; T & gt ;, IEquatable & lt; T & gt ;, struct {...
Даже я сталкивался с подобной ошибкой. Попробуйте ниже 2 шагов (первый из которых уже был рекомендован здесь) - 1. Добавьте зависимости к Вашему pom.xml
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.5</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
jar
файлы в Вашем .m2\repository\javax\<folder>\<version>\
каталог. You need to add two jars into the WEB-INF/lib directory or your webapp (or lib directory of the server):
Хотя возможно, что это связано с отсутствием jar-файла в пути к классам, это может быть не так.
Важно держать в голове два или три разных исключения. case:
java.lang.ClassNotFoundException
Это исключение указывает, что класс не был найден в пути к классам. Это указывает на то, что мы пытались загрузить определение класса, а класс не существует в пути к классам.
java.lang.NoClassDefFoundError
Это исключение указывает, что JVM искала определение во внутренней структуре данных определения класса. класса и не нашел. Это отличается от того, чтобы сказать, что он не может быть загружен из пути к классам. Обычно это указывает на то, что мы ранее пытались загрузить класс из пути к классам, но по какой-то причине это не удалось - теперь мы пытаемся снова, но мы даже не будем пытаться его загрузить, потому что нам не удалось загрузить его ранее. Более ранняя ошибка могла быть ClassNotFoundException
или ExceptionInInitializerError
(указывающая на сбой в статическом блоке инициализации) или любое количество других проблем. Дело в том, что NoClassDefFoundError
не обязательно является проблемой пути к классам.
Я бы посмотрел на источник javax.mail.Authenticator
и посмотрел, что он делает в статике. инициализатор. (Посмотрите на инициализацию статической переменной и статический блок, если он есть.) Если вы не получаете исключение ClassNotFoundException
до NoClassDefFoundError
, вам почти гарантировано, что это ошибка проблема статической инициализации.
Я встречал подобные ошибки довольно часто, когда файл hosts неправильно определяет адрес localhost, а блок статической инициализации полагается на InetAddress.getLocalHost ()
. 127.0.0.1 должен указывать на localhost (и, возможно, также на localhost.localdomain). Оно НЕ должно указывать на фактическое имя хоста компьютера (хотя по какой-то причине многие старые установщики RedHat Linux предпочитали указывать его неправильно).