2017-09-11 7 views
0

아파치 제임스 메일 서버용 맞춤형 Mailet를 사용하고 싶다.Apache James Mail Server : 맞춤 마이 앨범을 넣을 곳은 어디입니까?

저는 linagora/james-project 이미지를 통해 Docker를 통해 James를 실행 중입니다. 설정은 (당연히 로컬에서만 가능하지만 그때는 충분합니다.) 계정을 설정하고 IMAP을 통해 Thunderbird에 연결할 수 있으며 해당 계정간에 메일을 보낼 수 있습니다.

이제 맞춤형 Mailet을이 설치에 배포하고 싶습니다. 나는이 튜토리얼을 사용하여 이것을 시도했다. https://james.apache.org/server/3/dev-extend-mailet.html (존재하지 않았기 때문에/conf/lib/폴더를 만들어야 만했다.) 그러나 작동하지 않을 것이다. 로그에서 나는이 같은 오류를 참조하십시오 소스 코드를 검색하여

james | [main] INFO org.apache.james.mailetcontainer.lib.AbstractStateMailetProcessor - Matcher All instantiated. 
james | [main] ERROR org.apache.james.mailetcontainer.lib.AbstractStateMailetProcessor - Unable to init mailet com.jeremiaslubberger.mailets.TestMailet: javax.mail.MessagingException: Can not load mailet com.jeremiaslubberger.mailets.TestMailet; 
james | nested exception is: 
james |  java.lang.ClassNotFoundException: com.jeremiaslubberger.mailets.TestMailet 
james | javax.mail.MessagingException: Can not load mailet com.jeremiaslubberger.mailets.TestMailet; 
james | nested exception is: 
james |  java.lang.ClassNotFoundException: com.jeremiaslubberger.mailets.TestMailet 

을, 나는 public static final String EXTENSIONS_JARS_FOLDER_NAME = "extensions-jars/"; 그래서 내가 (제임스 루트 폴더)이 폴더를 생성 시도 라인에게이 파일 ExtendedClassLoader.java 발견 커스텀의 Mailet를 포함한 JAR 파일을 거기에 넣습니다. 이 오류가 계속 발생하고 작동하지 않습니다

그러나 로그는 이제 다음과 같습니다

james | [main] INFO org.apache.james.mailetcontainer.lib.AbstractStateMailetProcessor - Matcher All instantiated. 
james | Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/mailet/GenericMailet 
james |  at java.lang.ClassLoader.defineClass1(Native Method) 
james |  at java.lang.ClassLoader.defineClass(ClassLoader.java:763) 
james |  at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
james |  at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) 
james |  at java.net.URLClassLoader.access$100(URLClassLoader.java:73) 
james |  at java.net.URLClassLoader$1.run(URLClassLoader.java:368) 
james |  at java.net.URLClassLoader$1.run(URLClassLoader.java:362) 
james |  at java.security.AccessController.doPrivileged(Native Method) 
james |  at java.net.URLClassLoader.findClass(URLClassLoader.java:361) 
james |  at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
james |  at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
james |  at org.apache.james.utils.ExtendedClassLoader.locateClass(ExtendedClassLoader.java:80) 
james |  at org.apache.james.utils.GuiceGenericLoader.instanciate(GuiceGenericLoader.java:37) 
james |  at org.apache.james.utils.GuiceMailetLoader.getMailet(GuiceMailetLoader.java:45) 

내 사용자 정의 Mailet는 GenericMailet을 연장하지만, 그래서 다른 모든 (기본값) Mailets을합니까. 또한 모든 리소스를 포함하여 mailet을 내보냈으므로 여기에는 아무 것도 없어야합니다. 이제는 아이디어가 없어졌습니다.

아무도 도와 줄 수 있습니까? 내 맞춤형 Mailet이 들어있는 JAR 파일은 어디에 두어야합니까?

답변

0

Apache James 폴더의 conf/lib 폴더입니다. 이 폴더는 모든 릴리스에 대해 제공된 기본 ZIP (예 : 3.0.1)로 제공됩니다.

또한 클래스 경로 (일반 mailet 패키지)에 mailet-base 및 mailet-api jar가 필요합니다. 그것은 보통 경우입니다. (당신이 봄 배선에 의존로 사용하지 않는 것 같다)

https://gitter.im/apache/james-project에 우리가 도달하는 것을 망설이지 말라 , 우리가 더 반응 것

확장-항아리 폴더 ...

Guice 배선에 특정