2015-09-14 6 views
0

Я только что загрузил и установил последнюю бета-версию Apache James 3 в Windows, и до сих пор я не мог отправить простое сообщение. Похоже, что есть проблема с сборкой. Ошибка -java.lang.NoSuchMethodError при отправке почты с помощью Apache James 3

ERROR 22:45:01,666 | james.mailspooler | Exception processing mail while spooling Unable to process mail Mail1442234701295-757cd62b-eeed-4671-828c-2a7c715acfaa (org.apache.camel.CamelExecutionException: Exception occurred during execution on the exchange: Exchange[Message: [email protected]]) 
javax.mail.MessagingException: Unable to process mail Mail1442234701295-757cd62b-eeed-4671-828c-2a7c715acfaa (org.apache.camel.CamelExecutionException: Exception occurred during execution on the exchange: Exchange[Message: [email protected]]) 
. 
. 
Caused by: javax.mail.MessagingException: Unable to process mail Mail1442234701295-757cd62b-eeed-4671-828c-2a7c715acfaa (org.apache.camel.CamelExecutionException: Exception occurred during execution on the exchange: Exchange[Message: [email protected]]) 
. 
. 
Caused by: org.apache.camel.CamelExecutionException: Exception occurred during execution on the exchange: Exchange[Message: [email protected]] 
. 
. 
Caused by: java.lang.NoSuchMethodError: org.apache.james.mime4j.stream.MimeConfig: method <init>()V not found 

соответствующий класс в JAR показывает якобы отсутствующий конструктор, так что я нахожусь в полной растерянности. Может ли кто-нибудь вести меня в правильном направлении, пожалуйста?

Заранее благодарен!

Edit: декомпилированные фрагмент кода из класса MimeConfig показывает конструктору

public final class MimeConfig { 
    /* member class not found */ 
    class Builder {} 
. 
. 
    MimeConfig(boolean strictParsing, int maxLineLen, int maxHeaderCount, int maxHeaderLen, long maxContentLen, boolean countLineNumbers, 
       String headlessParsing, boolean malformedHeaderStartsBody) { 
/* 53*/  this.strictParsing = strictParsing; 
/* 54*/  this.countLineNumbers = countLineNumbers; 
/* 55*/  this.malformedHeaderStartsBody = malformedHeaderStartsBody; 
/* 56*/  this.maxLineLen = maxLineLen; 
/* 57*/  this.maxHeaderCount = maxHeaderCount; 
/* 58*/  this.maxHeaderLen = maxHeaderLen; 
/* 59*/  this.maxContentLen = maxContentLen; 
/* 60*/  this.headlessParsing = headlessParsing; 
     } 
+0

Публикация кода поможет людям понять ее более четко. – Techidiot

+0

«Соответствующий класс в JAR показывает якобы отсутствующий конструктор» <- как конкретно вы это подтвердили? –

+0

Это не мой код, я только что создал пользователей и отправил почту по руководству Quickstart https://james.apache.org/server/3/quick-start.html – Jay

ответ

0

Я получил ту же ошибку, и в поисках ответа. Ошибка связана с тем, что MimeConfig не имеет конструктора по умолчанию. Я мог бы получить почту, успешно доставленную локально, делая следующее.

  1. Dowloaded апач-mime4j одножильных-0.8.0-20150617.024907-738-источники
  2. Создан открытый конструктор по умолчанию для MimeConfig
  3. Инициализированные все переменные со значениями, показанными в конструкторе статического Builder класса
  4. Добавлены сеттеры для всех переменных (Потому что я получал NoSuchMethodError для setMaxLineLen)
  5. Создано баночку называется апач-mime4j-0.8.0-fix.jar и проталкивается в Lib папку
  6. я использую run.sh, так заменил имя ядра mime4j на указанное выше.

Уверен, что есть некоторая несоответствие между буфером и mime4j. Я думаю, что вызывающий код должен использовать Builder вместо того, чтобы пытаться создать экземпляр MimeConfig.

Попробуйте эти и дайте мне знать, если это сработает. Это сработало для меня. Я не уверен, что это постоянное исправление, но я могу продолжить изучение функций V3, пока мы не получим постоянное решение.

Смежные вопросы