How to use JAMES (Java Mail Server) in windows 11 JDK 17

732 Views Asked by At

I want to find an email server implementation, convert the code to a war file like all my other apps.
The JAMES project seems so ... finished. But for years I couldn't even started it.

Milestones:

  1. i have extracted james-server-jpa-guice.zip file from https://james.apache.org/download.cgi and run:
D:\james>java -classpath 'james-server-jpa-app.lib/*' -javaagent:james-server-jpa-app.lib/openjpa-3.2.0.jar -Dlogback.configurationFile=conf/logback.xml -Dworking.directory=. org.apache.james.JPAJamesServerMain
Some product derivations are being skipped. For information about product derivation status, run:
java org.apache.openjpa.lib.conf.ProductDerivations
org.apache.openjpa.persistence.PersistenceProductDerivation:java.lang.NoClassDefFoundError: javax/persistence/spi/PersistenceUnitInfo
Error: Could not find or load main class org.apache.james.JPAJamesServerMain
Caused by: java.lang.ClassNotFoundException: org.apache.james.JPAJamesServerMain

no luck.

  1. Even though i don't understand Spring, I extracted james-server-app-3.7.0-app.zip from https://james.apache.org/download.cgi and run in admin mode:
D:\james\bin>james console
wrapper  | --> Wrapper Started as Console
wrapper  | Launching a JVM...
jvm 1    | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
jvm 1    |   Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
jvm 1    |
jvm 1    | 2022-04-24 15:52:29,840 main ERROR Unable to create file ${sys:app.home}/log/springframework.log java.io.IOException: Dosya ad², dizin ad² veya birim etiketi s÷zdizimi hatal²
jvm 1    |      at java.base/java.io.WinNTFileSystem.canonicalize0(Native Method)
jvm 1    |      at java.base/java.io.WinNTFileSystem.canonicalize(WinNTFileSystem.java:417)
jvm 1    |      at java.base/java.io.File.getCanonicalPath(File.java:626)
jvm 1    |      at java.base/java.io.File.getCanonicalFile(File.java:651)
jvm 1    |      at org.apache.logging.log4j.core.util.FileUtils.makeParentDirs(FileUtils.java:135)
jvm 1    |      at org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory.createManager(RollingFileManager.java:732)
jvm 1    |      at org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory.createManager(RollingFileManager.java:716)
jvm 1    |      at org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:114)
jvm 1    |      at org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:100)
jvm 1    |      at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:217)
jvm 1    |      at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:146)
jvm 1    |      at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:62)
jvm 1    |      at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:122)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:1120)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1045)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1037)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:651)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:247)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:293)
jvm 1    |      at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:626)
jvm 1    |      at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:699)
jvm 1    |      at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:716)
jvm 1    |      at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:270)
jvm 1    |      at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:155)
jvm 1    |      at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47)
jvm 1    |      at org.apache.logging.log4j.LogManager.getContext(LogManager.java:196)
jvm 1    |      at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:137)
jvm 1    |      at org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:55)
jvm 1    |      at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:47)
jvm 1    |      at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:33)
jvm 1    |      at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:363)
jvm 1    |      at org.apache.james.app.spring.JamesAppSpringMain.<clinit>(JamesAppSpringMain.java:34)
jvm 1    |      at java.base/java.lang.Class.forName0(Native Method)
jvm 1    |      at java.base/java.lang.Class.forName(Class.java:375)
jvm 1    |      at org.tanukisoftware.wrapper.WrapperSimpleApp.<init>(WrapperSimpleApp.java:147)
jvm 1    |      at org.tanukisoftware.wrapper.WrapperSimpleApp.main(WrapperSimpleApp.java:485)
jvm 1    |
jvm 1    | 2022-04-24 15:52:29,843 main ERROR Could not create plugin of type class org.apache.logging.log4j.core.appender.RollingFileAppender for element RollingFile: java.lang.IllegalStateException: ManagerFactory [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory@44a59da3] unable to create manager for [${sys:app.home}/log/springframework.log] with data [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$FactoryData@27e47833[pattern=${sys:app.home}/log/springframework.%d{yyyy-MM-dd}-%i.log.gz, append=true, bufferedIO=true, bufferSize=8192, policy=CompositeTriggeringPolicy(policies=[]), strategy=DefaultRolloverStrategy(min=1, max=7, useMax=true), advertiseURI=null, layout=%d{dd-MMM-yyyy HH:mm:ss.SSS} %level [%t] %C.%M:%L - %msg%n, filePermissions=null, fileOwner=null]] java.lang.IllegalStateException: ManagerFactory [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory@44a59da3] unable to create manager for [${sys:app.home}/log/springframework.log] with data [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$FactoryData@27e47833[pattern=${sys:app.home}/log/springframework.%d{yyyy-MM-dd}-%i.log.gz, append=true, bufferedIO=true, bufferSize=8192, policy=CompositeTriggeringPolicy(policies=[]), strategy=DefaultRolloverStrategy(min=1, max=7, useMax=true), advertiseURI=null, layout=%d{dd-MMM-yyyy HH:mm:ss.SSS} %level [%t] %C.%M:%L - %msg%n, filePermissions=null, fileOwner=null]]
jvm 1    |      at org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:116)
jvm 1    |      at org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:100)
jvm 1    |      at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:217)
jvm 1    |      at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:146)
jvm 1    |      at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:62)
jvm 1    |      at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:122)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:1120)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1045)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1037)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:651)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:247)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:293)
jvm 1    |      at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:626)
jvm 1    |      at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:699)
jvm 1    |      at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:716)
jvm 1    |      at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:270)
jvm 1    |      at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:155)
jvm 1    |      at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47)
jvm 1    |      at org.apache.logging.log4j.LogManager.getContext(LogManager.java:196)
jvm 1    |      at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:137)
jvm 1    |      at org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:55)
jvm 1    |      at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:47)
jvm 1    |      at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:33)
jvm 1    |      at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:363)
jvm 1    |      at org.apache.james.app.spring.JamesAppSpringMain.<clinit>(JamesAppSpringMain.java:34)
jvm 1    |      at java.base/java.lang.Class.forName0(Native Method)
jvm 1    |      at java.base/java.lang.Class.forName(Class.java:375)
jvm 1    |      at org.tanukisoftware.wrapper.WrapperSimpleApp.<init>(WrapperSimpleApp.java:147)
jvm 1    |      at org.tanukisoftware.wrapper.WrapperSimpleApp.main(WrapperSimpleApp.java:485)
jvm 1    |
jvm 1    | 2022-04-24 15:52:29,947 main ERROR Unable to invoke factory method in class org.apache.logging.log4j.core.appender.RollingFileAppender for element RollingFile: java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.core.appender.RollingFileAppender java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.core.appender.RollingFileAppender
jvm 1    |      at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.findFactoryMethod(PluginBuilder.java:236)
jvm 1    |      at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:134)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:1120)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1045)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1037)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:651)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:247)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:293)
jvm 1    |      at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:626)
jvm 1    |      at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:699)
jvm 1    |      at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:716)
jvm 1    |      at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:270)
jvm 1    |      at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:155)
jvm 1    |      at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47)
jvm 1    |      at org.apache.logging.log4j.LogManager.getContext(LogManager.java:196)
jvm 1    |      at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:137)
jvm 1    |      at org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:55)
jvm 1    |      at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:47)
jvm 1    |      at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:33)
jvm 1    |      at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:363)
jvm 1    |      at org.apache.james.app.spring.JamesAppSpringMain.<clinit>(JamesAppSpringMain.java:34)
jvm 1    |      at java.base/java.lang.Class.forName0(Native Method)
jvm 1    |      at java.base/java.lang.Class.forName(Class.java:375)
jvm 1    |      at org.tanukisoftware.wrapper.WrapperSimpleApp.<init>(WrapperSimpleApp.java:147)
jvm 1    |      at org.tanukisoftware.wrapper.WrapperSimpleApp.main(WrapperSimpleApp.java:485)
jvm 1    |
jvm 1    | 2022-04-24 15:52:29,954 main ERROR Unable to create file ${sys:app.home}/log/openjpa.log java.io.IOException: Dosya ad², dizin ad² veya birim etiketi s÷zdizimi hatal²
jvm 1    |      at java.base/java.io.WinNTFileSystem.canonicalize0(Native Method)
jvm 1    |      at java.base/java.io.WinNTFileSystem.canonicalize(WinNTFileSystem.java:417)
jvm 1    |      at java.base/java.io.File.getCanonicalPath(File.java:626)
jvm 1    |      at java.base/java.io.File.getCanonicalFile(File.java:651)
jvm 1    |      at org.apache.logging.log4j.core.util.FileUtils.makeParentDirs(FileUtils.java:135)
jvm 1    |      at org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory.createManager(RollingFileManager.java:732)
jvm 1    |      at org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory.createManager(RollingFileManager.java:716)
jvm 1    |      at org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:114)
jvm 1    |      at org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:100)
jvm 1    |      at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:217)
jvm 1    |      at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:146)
jvm 1    |      at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:62)
jvm 1    |      at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:122)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:1120)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1045)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1037)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:651)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:247)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:293)
jvm 1    |      at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:626)
jvm 1    |      at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:699)
jvm 1    |      at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:716)
jvm 1    |      at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:270)
jvm 1    |      at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:155)
jvm 1    |      at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47)
jvm 1    |      at org.apache.logging.log4j.LogManager.getContext(LogManager.java:196)
jvm 1    |      at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:137)
jvm 1    |      at org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:55)
jvm 1    |      at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:47)
jvm 1    |      at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:33)
jvm 1    |      at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:363)
jvm 1    |      at org.apache.james.app.spring.JamesAppSpringMain.<clinit>(JamesAppSpringMain.java:34)
jvm 1    |      at java.base/java.lang.Class.forName0(Native Method)
jvm 1    |      at java.base/java.lang.Class.forName(Class.java:375)
jvm 1    |      at org.tanukisoftware.wrapper.WrapperSimpleApp.<init>(WrapperSimpleApp.java:147)
jvm 1    |      at org.tanukisoftware.wrapper.WrapperSimpleApp.main(WrapperSimpleApp.java:485)
jvm 1    |
jvm 1    | 2022-04-24 15:52:29,966 main ERROR Could not create plugin of type class org.apache.logging.log4j.core.appender.RollingFileAppender for element RollingFile: java.lang.IllegalStateException: ManagerFactory [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory@44a59da3] unable to create manager for [${sys:app.home}/log/openjpa.log] with data [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$FactoryData@6c61a903[pattern=${sys:app.home}/log/openjpa.%d{yyyy-MM-dd}-%i.log.gz, append=true, bufferedIO=true, bufferSize=8192, policy=CompositeTriggeringPolicy(policies=[]), strategy=DefaultRolloverStrategy(min=1, max=7, useMax=true), advertiseURI=null, layout=%d{dd-MMM-yyyy HH:mm:ss.SSS} %level [%t] %C.%M:%L - %msg%n, filePermissions=null, fileOwner=null]] java.lang.IllegalStateException: ManagerFactory [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory@44a59da3] unable to create manager for [${sys:app.home}/log/openjpa.log] with data [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$FactoryData@6c61a903[pattern=${sys:app.home}/log/openjpa.%d{yyyy-MM-dd}-%i.log.gz, append=true, bufferedIO=true, bufferSize=8192, policy=CompositeTriggeringPolicy(policies=[]), strategy=DefaultRolloverStrategy(min=1, max=7, useMax=true), advertiseURI=null, layout=%d{dd-MMM-yyyy HH:mm:ss.SSS} %level [%t] %C.%M:%L - %msg%n, filePermissions=null, fileOwner=null]]
jvm 1    |      at org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:116)
jvm 1    |      at org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:100)
jvm 1    |      at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:217)
jvm 1    |      at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:146)
jvm 1    |      at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:62)
jvm 1    |      at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:122)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:1120)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1045)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1037)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:651)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:247)
jvm 1    |      at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:293)
jvm 1    |      at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:626)
jvm 1    |      at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:699)
jvm 1    |      at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:716)
jvm 1    |      at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:270)
jvm 1    |      at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:155)
jvm 1    |      at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47)
jvm 1    |      at org.apache.logging.log4j.LogManager.getContext(LogManager.java:196)
jvm 1    |      at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:137)
jvm 1    |      at org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:55)
jvm 1    |      at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:47)
jvm 1    |      at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:33)
jvm 1    |      at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:363)
jvm 1    |      at org.apache.james.app.spring.JamesAppSpringMain.<clinit>(JamesAppSpringMain.java:34)
jvm 1    |      at java.base/java.lang.Class.forName0(Native Method)
jvm 1    |      at java.base/java.lang.Class.forName(Class.java:375)
jvm 1    |      at org.tanukisoftware.wrapper.WrapperSimpleApp.<init>(WrapperSimpleApp.java:147)
jvm 1    |      at 

.........

jvm 1    | 24-Nis-2022 15:52:37.034 INFO [WrapperSimpleAppMain] org.springframework.jmx.export.MBeanExporter.registerBeanInstance:672 - Located MBean 'org.apache.james:type=component,name=mailboxcopier': registering with JMX server as MBean [org.apache.james:type=component,name=mailboxcopier]
jvm 1    | 24-Nis-2022 15:52:37.034 INFO [WrapperSimpleAppMain] org.springframework.jmx.export.MBeanExporter.registerBeanInstance:672 - Located MBean 'org.apache.james:type=component,name=quotamanagerbean': registering with JMX server as MBean [org.apache.james:type=component,name=quotamanagerbean]
jvm 1    | 24-Nis-2022 15:52:37.035 INFO [WrapperSimpleAppMain] org.springframework.jmx.export.MBeanExporter.registerBeanInstance:672 - Located MBean 'org.apache.james:type=component,name=reindexerbean': registering with JMX server as MBean [org.apache.james:type=component,name=reindexerbean]
jvm 1    | 24-Nis-2022 15:52:37.035 INFO [WrapperSimpleAppMain] org.springframework.jmx.export.MBeanExporter.registerBeanInstance:672 - Located MBean 'org.apache.james:type=component,name=sievemanagerbean': registering with JMX server as MBean [org.apache.james:type=component,name=sievemanagerbean]
jvm 1    | 24-Nis-2022 15:52:37.040 INFO [WrapperSimpleAppMain] org.apache.james.app.spring.JamesAppSpringMain.main:46 - Apache James Server is successfully started in 6214 milliseconds.

It says server started, there are so many error messages that i am doubtfull.\

  1. Anyway, I tried to add a user as below; but i did not worked again
D:\james\bin>james-cli.bat adduser user@localhost myPass
24-Nis-2022 15:59:13.194 ERROR [main] org.apache.james.cli.ServerCmd.main:101 - Error while playing command
java.lang.Exception: Unexpected exception
        at org.apache.james.user.lib.UsersRepositoryManagement.addUser(UsersRepositoryManagement.java:57) ~[james-server-data-library-3.7.0.jar:3.7.0]
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
        at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
        at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
        at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:72) ~[?:?]
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
        at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
        at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
        at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:262) ~[?:?]
        at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:112) ~[?:?]
        at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:46) ~[?:?]
        at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237) ~[?:?]
        at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138) ~[?:?]
        at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252) ~[?:?]
        at javax.management.StandardMBean.invoke(StandardMBean.java:405) ~[?:?]
        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:814) ~[?:?]
        at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:802) ~[?:?]
        at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1472) ~[?:?]
        at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1310) ~[?:?]
        at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1405) ~[?:?]
        at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829) ~[?:?]
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
        at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
        at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
        at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:360) ~[?:?]
        at sun.rmi.transport.Transport$1.run(Transport.java:200) ~[?:?]
        at sun.rmi.transport.Transport$1.run(Transport.java:197) ~[?:?]
        at java.security.AccessController.doPrivileged(AccessController.java:712) ~[?:?]
        at sun.rmi.transport.Transport.serviceCall(Transport.java:196) ~[?:?]
        at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:587) ~[?:?]
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828) ~[?:?]
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:705) ~[?:?]
        at java.security.AccessController.doPrivileged(AccessController.java:399) ~[?:?]
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:704) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
        at java.lang.Thread.run(Thread.java:833) ~[?:?]
Error class java.lang.Exception while executing command:Unexpected exception
usage: java org.apache.james.cli.ServerCmd --host <arg> <command>
 -h,--host <arg>   node hostname or ip address
 -p,--port <arg>   remote jmx agent port number
AddUser <username> <password>
RemoveUser <username>
ListUsers
AddDomain <domainName>
RemoveDomain <domainName>
ContainsDomain <domainName>
ListDomains
ListMappings
ListUserDomainMappings <user> <domain>
AddAddressMapping <fromUser> <fromDomain> <toAddress>
RemoveAddressMapping <fromUser> <fromDomain> <toAddress>
AddRegexMapping <user> <domain> <regex>
RemoveRegexMapping <user> <domain> <regex>
SetPassword <username> <password>
CopyMailbox <srcBean> <dstBean>
DeleteUserMailboxes <user>
CreateMailbox <namespace> <user> <name>
ListUserMailboxes <user>
DeleteMailbox <namespace> <user> <name>
ImportEml <namespace> <user> <name> <path>
GetStorageQuota <quotaroot>
GetMessageCountQuota <quotaroot>
GetQuotaroot <namespace> <user> <name>
GetMaxStorageQuota <quotaroot>
GetMaxMessageCountQuota <quotaroot>
SetMaxStorageQuota <quotaroot> <maxMessageCount>
SetMaxMessageCountQuota <quotaroot> <maxStorage>
SetGlobalMaxStorageQuota <maxStorage>
SetGlobalMaxMessageCountQuota <maxMessageCount>
GetGlobalMaxStorageQuota
GetGlobalMaxMessageCountQuota
ReindexMailbox <namespace> <user> <name>
ReindexAll
GetSieveQuota
SetSieveQuota <quota>
RemoveSieveQuota
GetSieveUserQuota <username>
SetSieveUserQuota <username> <quota>
RemoveSieveUserQuota <username>
AddActiveSieveScript <username> <scriptname> <path>

Could you put me in the right track.

1

There are 1 best solutions below

0
On

Use

cd james-server-spring-app-3.7.3\bin
run.bat

If the windows firewall pops up and asks to allow the opening of the port, please allow the opening of the relevant port for Apache James Mail Server to use.

Do not use

james console

run.bat - log

C:\Users\IEUser\Downloads\james-server-spring-app-3.7.3\bin>run.bat
24-Jan-2023 04:55:15.525 INFO [main] org.springframework.context.support.AbstractApplicationContext.prepareRefresh:583 - Refreshing org.apache.james.container.spring.context.JamesServerApplicationContext@7c098bb3: startup date [Tue Jan 24 04:55:15 PST 2023]; root of context hierarchy
24-Jan-2023 04:55:15.610 INFO [main] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions:317 - Loading XML bean definitions from class path resource [META-INF/org/apache/james/spring-server.xml]
...
24-Jan-2023 04:55:25.995 INFO [main] org.apache.activemq.transport.TransportServerThreadSupport.doStart:69 - Listening for connections at: tcp://127.0.0.1:50043
24-Jan-2023 04:55:25.995 INFO [main] org.apache.activemq.broker.TransportConnector.start:267 - Connector tcp://127.0.0.1:50043 started
24-Jan-2023 04:55:26.010 INFO [main] org.apache.activemq.broker.BrokerService.doStartBroker:759 - Apache ActiveMQ 5.17.2 (james, broker) started
...
24-Jan-2023 04:55:27.678 INFO [main] org.apache.james.protocols.lib.netty.AbstractConfigurableAsyncServer.configure:199 - SMTP Service bound to: 0.0.0.0:25
...
24-Jan-2023 04:55:27.992 INFO [main] org.apache.james.protocols.lib.netty.AbstractConfigurableAsyncServer.configure:199 - POP3 Service bound to: 0.0.0.0:110
...
24-Jan-2023 04:55:28.239 INFO [main] org.apache.james.protocols.lib.netty.AbstractConfigurableAsyncServer.configure:199 - IMAP Service bound to: 0.0.0.0:143
...
24-Jan-2023 04:55:28.378 INFO [main] org.springframework.remoting.rmi.RmiRegistryFactoryBean.getRegistry:217 - Looking for RMI registry at port '9999', using custom socket factory
...
24-Jan-2023 04:55:29.997 INFO [main] org.apache.james.app.spring.JamesAppSpringMain.main:46 - Apache James Server is successfully started in 14534 milliseconds.

james-cli.bat - log

C:\Users\IEUser\Downloads\james-server-spring-app-3.7.3\bin>james-cli.bat adduser user@localhost myPass
AddUser command executed sucessfully in 573 ms.

My Env:

JDK install

(1) Remove Environment Variavle: JAVA_HOME, And Remove JDK Path from Environment Variavle: PATH

(2) install adoptium Open JDK 11

(2-1) Download JDK msi file - https://adoptium.net/temurin/releases/

  • Operating System: Windows
  • Architecture: x64
  • Package Type: JDK
  • Version: 11
  • install Type: .msi

(2-2) click OpenJDK11U-jdk_x64_windows_hotspot_11.0.18_10.msi

(2-3) GUI: Welcome to ..., Click Next

(2-4) GUI: Custom Setup,

(2-4-1) Set JAVA_HOME variale, drop down, select Entire feacture will be installed on local hard drive

(2-4-2) JavaSoft(Oracle) registry keys, drop down, select Entire feacture will be installed on local hard drive

(2-4-3) Click Next

(2-5) GUI: Ready to install ..., click Install

(2-6) Windows: User Account Control, Do you want to allow..., clock Yes

(2-7) GUI: Completed the Eclipse ..., click Finish