아파치 제임스 메일 서버용 맞춤형 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 파일은 어디에 두어야합니까?