On 10/3/2016 1:02 AM, Matthieu Baechler wrote:
My first question relates to the cassandra.properties file. According
to the instructions at
https://james.apache.org/server/3/config-cassandra.html
*cassandra.ip*
Is the IP (or host) of the Cassandra used. (cluster is not yet
supported)
Am I suppose to assign the internal private or an external public IP
address for the host that Cassandra is running on? If external, does
this host have to be in a DMZ? I don't know how this is going to be
used hence the reason I am asking... The version of the
cassandra.properties file that I got when I cloned the GIT repository
had it pre-configured as cassandra.ip = cassandra which I am sure
must be wrong but then again I have little experience with Docker so
I could be wrong...
So the documentation uses --link docker option, it creates to right
alias into james container so that cassandra resolves to cassandra IP.
The cool thing about that is : cassandra port is not routed outside
docker private network so you don't have to care too much about
cassandra security.
Thanks once again for your help Matthieu. I made an attempt to go ahead
and start the James server using my best guesses on how the
configuration files should be set up. Unfortunately I hit another snag,
see below. I can send you the contents of my configuration files if you
need to see them. For the cassandra.properties I set the cassandra.ip
back to cassandra.ip = cassandra as it was originally configured. (When
I got the stack exception/walkback that you see below I also tried, just
for grins, a few other guesses but nothing I tried worked so decided to
leave it alone and get help.)
My second question concerns setting up the SMTP server to use
Authentication. Again according to the instructions at
https://james.apache.org/server/3/config-smtp-lmtp.html it says -
... (stuff deleted from my previous emails)
Depending on your domain backend, you can define statically the
domains into domainlist.xml (I guess servernames got replaced by
domainnames) or dynamically by calling administration API.
With cassandra, we rather use dynamic config, so take a look at "how
to call james-cli" in the documentation, there's an API like
"adddomain" in it.
OK. I will punt on this for now and try to configure the domain names
dynamically when I get the server up and running....
I had to modify the command to start the James server slightly to point
the jar file to what I believe is the correct location. Please verify
that my command I issued is correct. That resulted in what appears to be
6 repetitions of an error that seems to center around "cassandra.port"
Because these walkbacks are so long I will only show the first one. Got
any ideas on what I have done wrong? Marc.....
bigbang:/james/docker/james-project # java
-Dworking.directory=dockerfiles/run/guice/destination/conf -jar
server/container/guice/cassandra-guice/target/james-server-cassandra-guice-3.0.0-beta5-SNAPSHOT.jar
Exception in thread "main" com.google.inject.ProvisionException:
Unable to provision, see the following errors:
1) Error in custom provider, java.util.concurrent.ExecutionException:
java.util.NoSuchElementException: 'cassandra.port' doesn't map to an
existing object
at
org.apache.james.modules.mailbox.CassandraSessionModule.provideCluster(CassandraSessionModule.java:76)
(via modules: com.google.inject.util.Modules$CombinedModule ->
com.google.inject.util.Modules$CombinedModule ->
org.apache.james.modules.mailbox.CassandraSessionModule)
at
org.apache.james.modules.mailbox.CassandraSessionModule.provideCluster(CassandraSessionModule.java:76)
(via modules: com.google.inject.util.Modules$CombinedModule ->
com.google.inject.util.Modules$CombinedModule ->
org.apache.james.modules.mailbox.CassandraSessionModule)
while locating com.datastax.driver.core.Cluster
for parameter 1 at
org.apache.james.modules.mailbox.CassandraSessionModule.provideSession(CassandraSessionModule.java:68)
at
org.apache.james.modules.mailbox.CassandraSessionModule.provideSession(CassandraSessionModule.java:68)
(via modules: com.google.inject.util.Modules$CombinedModule ->
com.google.inject.util.Modules$CombinedModule ->
org.apache.james.modules.mailbox.CassandraSessionModule)
at
org.apache.james.modules.mailbox.CassandraSessionModule.provideSession(CassandraSessionModule.java:68)
(via modules: com.google.inject.util.Modules$CombinedModule ->
com.google.inject.util.Modules$CombinedModule ->
org.apache.james.modules.mailbox.CassandraSessionModule)
while locating com.datastax.driver.core.Session
for parameter 0 at
org.apache.james.mailbox.cassandra.mail.CassandraUidProvider.<init>(CassandraUidProvider.java:65)
at
org.apache.james.modules.mailbox.CassandraMailboxModule.configure(CassandraMailboxModule.java:63)
(via modules: com.google.inject.util.Modules$CombinedModule ->
com.google.inject.util.Modules$CombinedModule ->
org.apache.james.modules.mailbox.CassandraMailboxModule)
while locating
org.apache.james.mailbox.cassandra.mail.CassandraUidProvider
while locating org.apache.james.mailbox.store.mail.UidProvider
for parameter 0 at
org.apache.james.mailbox.cassandra.CassandraMailboxSessionMapperFactory.<init>(CassandraMailboxSessionMapperFactory.java:57)
at
org.apache.james.modules.mailbox.CassandraMailboxModule.configure(CassandraMailboxModule.java:58)
(via modules: com.google.inject.util.Modules$CombinedModule ->
com.google.inject.util.Modules$CombinedModule ->
org.apache.james.modules.mailbox.CassandraMailboxModule)
while locating
org.apache.james.mailbox.cassandra.CassandraMailboxSessionMapperFactory
for parameter 0 at
org.apache.james.mailbox.cassandra.CassandraMailboxManager.<init>(CassandraMailboxManager.java:50)
at
org.apache.james.modules.mailbox.CassandraMailboxModule.configure(CassandraMailboxModule.java:59)
(via modules: com.google.inject.util.Modules$CombinedModule ->
com.google.inject.util.Modules$CombinedModule ->
org.apache.james.modules.mailbox.CassandraMailboxModule)
while locating
org.apache.james.mailbox.cassandra.CassandraMailboxManager
while locating org.apache.james.mailbox.MailboxManager
for parameter 0 at
org.apache.james.jmap.JMAPModule$RequiredCapabilitiesPrecondition.<init>(JMAPModule.java:101)
at
org.apache.james.jmap.JMAPModule$RequiredCapabilitiesPrecondition.class(JMAPModule.java:101)
while locating
org.apache.james.jmap.JMAPModule$RequiredCapabilitiesPrecondition
while locating org.apache.james.utils.ConfigurationPerformer
annotated with
@com.google.inject.multibindings.Element(setName=,uniqueId=16,
type=MULTIBINDER, keyType=)
at
org.apache.james.modules.server.DNSServiceModule.configure(DNSServiceModule.java:47)
(via modules: com.google.inject.util.Modules$CombinedModule ->
com.google.inject.util.Modules$CombinedModule ->
org.apache.james.modules.CommonServicesModule ->
org.apache.james.modules.server.DNSServiceModule ->
com.google.inject.multibindings.Multibinder$RealMultibinder)
while locating
java.util.Set<org.apache.james.utils.ConfigurationPerformer>
for parameter 0 at
org.apache.james.utils.ConfigurationsPerformer.<init>(ConfigurationsPerformer.java:36)
while locating org.apache.james.utils.ConfigurationsPerformer
Caused by: java.util.concurrent.ExecutionException:
java.util.NoSuchElementException: 'cassandra.port' doesn't map to an
existing object
at
java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
at
java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1895)
at
org.apache.james.modules.mailbox.CassandraSessionModule.provideCluster(CassandraSessionModule.java:87)
at
org.apache.james.modules.mailbox.CassandraSessionModule$$FastClassByGuice$$c011b41b.invoke(<generated>)
at
com.google.inject.internal.ProviderMethod$FastClassProviderMethod.doProvision(ProviderMethod.java:272)
at
com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:172)
at
com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81)
at
com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:53)
at
com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:61)
at
com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45)
at
com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
at
com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at
com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145)
at
com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
at
com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1016)
at
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
at
com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012)
at
com.google.inject.spi.ProviderLookup$1.get(ProviderLookup.java:104)
at
com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:167)
at
com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81)
at
com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:53)
at
com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:61)
at
com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45)
at
com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
at
com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at
com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145)
at
com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
at
com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
at
com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
at
com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:104)
at
com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
at
com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267)
at
com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
at
com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at
com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145)
at
com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
at
com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:56)
at
com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
at
com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
at
com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:104)
at
com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
at
com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267)
at
com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
at
com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at
com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145)
at
com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
at
com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
at
com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
at
com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:104)
at
com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
at
com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267)
at
com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
at
com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at
com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145)
at
com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
at
com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:56)
at
com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
at
com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
at
com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:104)
at
com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
at
com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267)
at
com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
at
com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at
com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145)
at
com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
at
com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:56)
at
com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1016)
at
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
at
com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012)
at
com.google.inject.multibindings.Multibinder$RealMultibinder.get(Multibinder.java:375)
at
com.google.inject.multibindings.Multibinder$RealMultibinder.get(Multibinder.java:258)
at
com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81)
at
com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:53)
at
com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:61)
at
com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45)
at
com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
at
com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
at
com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:104)
at
com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
at
com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267)
at
com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1016)
at
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
at
com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012)
at
com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1051)
at
org.apache.james.GuiceJamesServer.start(GuiceJamesServer.java:75)
at
org.apache.james.CassandraJamesServerMain.main(CassandraJamesServerMain.java:55)
Caused by: java.util.NoSuchElementException: 'cassandra.port' doesn't
map to an existing object
at
org.apache.commons.configuration.AbstractConfiguration.getInt(AbstractConfiguration.java:816)
at
org.apache.james.modules.mailbox.CassandraSessionModule.lambda$provideCluster$0(CassandraSessionModule.java:83)
at
com.nurkiewicz.asyncretry.SyncRetryJob.run(SyncRetryJob.java:23)
at com.nurkiewicz.asyncretry.RetryJob.run(RetryJob.java:108)
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
--
"The Truth is out there" - Spooky
---------------------------------------------------------------------
To unsubscribe, e-mail: server-user-unsubscr...@james.apache.org
For additional commands, e-mail: server-user-h...@james.apache.org