Re: JMX Access?

2019-09-25 Thread Tellier Benoit
Thanks for the very instructive email.

Wouldn't you mind stating in
http://james.apache.org/server/monitor-jmx.html that these system
properties might be setted for a remote JMX usage?

https://github.com/apache/james-project/blob/master/src/site/xdoc/server/monitor-jmx.xml
is the corresponding source file.

And by the way, as I stated in a previous email, there is very good
reasons not to enable JMX remotely, namely
https://www.cvedetails.com/cve/CVE-2017-12628/ ... We need to warn about
security implication of remote JMX usage as well.

Best regards,

Benoit Tellier

On 26/09/2019 12:21, Saibabu Vallurupalli wrote:
> Hi Jerry,
> 
> you need to add JVM options before starting the James server. See the
> two parameters below:
> Edit james.sh in vi editor or whichever you are comfortable with and
> then add  "-Dcom.sun.management.jmxremote=true" and
> "-Dcom.sun.management.jmxremote.authenticate=false", see below the way
> how I did.
> 
> case "$1" in
> start)
> echo Starting James
> nohup java -classpath
> "james-server-jpa-guice.jar:james-server-jpa-guice.lib/*:james-server-jpa-guice.lib"
> -javaagent:james-server-jpa-guice.lib/openjpa-3.0.0.jar
> -Dcom.sun.management.jmxremote=true
> -Dcom.sun.management.jmxremote.authenticate=false
> -Dlogback.configurationFile=conf/logback.xml -Dworking.directory=.
> org.apache.james.JPAJamesServerMain > /dev/null 2>&1  &
> 
> Do the same for restart) option too just in case if you restart you
> may loose JMX option.
> 
> Then the JMX gets enabled. The script has issues, these parameters
> should be available by default.
> 
> Hope this helps and you can meet your deadline now :-)
> 
> Let me know how it goes.
> 
> Thanks,
> Sai
> 
> On Thu, Sep 26, 2019 at 1:11 AM Jerry Malcolm  wrote:
>>
>> I figure if I keep asking questions, sooner or later I'm going to hit
>> one that SOMEBODY can help me with  The issues keep backing up.  And
>> my deadline is way too close Is anyone using James 3.3.0?  Yet I'm
>> the only one having these out-of-the-box problems?  This migration has
>> been an absolute nightmare.
>>
>> I still have absolutely NO way to see any logging data for the mailets,
>> smtp, imap, etc logs.   So I decided to use JMX to see if there were any
>> MBeans exposed that might help me figure out why there is no logging.
>> And, of course with the way everything else has gone, I can't connect to
>> James JMX.  JConsole will not connect.  It works fine accessing Tomcat
>> using the same approach. But nothing with James.  I'm using a PuTTY
>> tunnel directly to the Amazon EC2 instance.
>>
>> I went back to an absolute pristine install of JAMES 3.3.0 right out of
>> the downloaded zip file.  I made absolutely zero changes to the
>> install/config.  Just unpack and run.  No JMX access with out-of-the-box
>> James either.  JConsole hangs for about a minute, and gives me an error
>> that it can't connect.
>>
>> Then I made one change to log4j.properties and bumped everything to
>> DEBUG.  Thankfully, the one log file that actually works in this release
>> is James-server.log.  I see the following error when James is apparently
>> starting up JMX.  The 172.31 IP address it's failing on is my EC2
>> public IP.  But the jmx.properties file says to connect to
>> 127.0.0.1:.  I never explicitly configured the 172.31... address
>> anywhere in James.
>>
>> What's causing this:
>>
>> INFO  04:29:47,638 |
>> org.springframework.remoting.rmi.RmiRegistryFactoryBean | Looking for
>> RMI registry at port '', using custom socket factory
>> DEBUG 04:29:47,642 |
>> org.springframework.remoting.rmi.RmiRegistryFactoryBean | RMI registry
>> access threw exception
>> java.rmi.ConnectException: Connection refused to host: 172.31.32.236;
>> nested exception is:
>>  java.net.ConnectException: Connection refused (Connection refused)
>>  at
>> sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619)
>>  at
>> sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)
>>  at
>> sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
>>  at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:338)
>>  at
>> sun.rmi.registry.RegistryImpl_Stub.list(RegistryImpl_Stub.java:85)
>>  at
>> org.springframework.remoting.rmi.RmiRegistryFactoryBean.testRegistry(RmiRegistryFactoryBean.java:281)
>>  at
>> org.springframework.remoting.rmi.RmiRegistryFactoryBean.getRegistry(RmiRegistryFactoryBean.java:222)
>>  at
>> org.springframework.remoting.rmi.RmiRegistryFactoryBean.getRegistry(RmiRegistryFactoryBean.java:193)
>>  at
>> org.springframework.remoting.rmi.RmiRegistryFactoryBean.afterPropertiesSet(RmiRegistryFactoryBean.java:164)
>>  at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1573)
>>  at
>> 

Re: JMX Access?

2019-09-25 Thread Tellier Benoit
Hi Jerry,

You need to be aware James restrict JMX access to localhost.

As you know, the James command line is currently using JMX.

JMX is known-to-be unsecure: read
https://www.cvedetails.com/cve/CVE-2017-12628/ for instance. Exposing
JMX only to localHost is a mitigation.

Could this be the root of your JMX problem?

On 26/09/2019 12:03, Jerry Malcolm wrote:
> [...]> So I decided to use JMX to see if there were any
> MBeans exposed that might help me figure out why there is no logging.  
> And, of course with the way everything else has gone, I can't connect to
> James JMX.  JConsole will not connect.  It works fine accessing Tomcat
> using the same approach. But nothing with James.  I'm using a PuTTY
> tunnel directly to the Amazon EC2 instance.
> 
> I went back to an absolute pristine install of JAMES 3.3.0 right out of
> the downloaded zip file.  I made absolutely zero changes to the
> install/config.  Just unpack and run.  No JMX access with out-of-the-box
> James either.  JConsole hangs for about a minute, and gives me an error
> that it can't connect.
> 
> Then I made one change to log4j.properties and bumped everything to
> DEBUG.  Thankfully, the one log file that actually works in this release
> is James-server.log.  I see the following error when James is apparently
> starting up JMX.  The 172.31 IP address it's failing on is my EC2
> public IP.  But the jmx.properties file says to connect to
> 127.0.0.1:.  I never explicitly configured the 172.31... address
> anywhere in James.
> 
> What's causing this:
> 
> INFO  04:29:47,638 |
> org.springframework.remoting.rmi.RmiRegistryFactoryBean | Looking for
> RMI registry at port '', using custom socket factory
> DEBUG 04:29:47,642 |
> org.springframework.remoting.rmi.RmiRegistryFactoryBean | RMI registry
> access threw exception
> java.rmi.ConnectException: Connection refused to host: 172.31.32.236;
> nested exception is:
>     java.net.ConnectException: Connection refused (Connection refused)
>     at
> sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619)
>     at
> sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)
>     at
> sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
>     at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:338)
>     at
> sun.rmi.registry.RegistryImpl_Stub.list(RegistryImpl_Stub.java:85)
>     at
> org.springframework.remoting.rmi.RmiRegistryFactoryBean.testRegistry(RmiRegistryFactoryBean.java:281)
> 
>     at
> org.springframework.remoting.rmi.RmiRegistryFactoryBean.getRegistry(RmiRegistryFactoryBean.java:222)
> 
>     at
> org.springframework.remoting.rmi.RmiRegistryFactoryBean.getRegistry(RmiRegistryFactoryBean.java:193)
> 
>     at
> org.springframework.remoting.rmi.RmiRegistryFactoryBean.afterPropertiesSet(RmiRegistryFactoryBean.java:164)
> 
>     at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1573)
> 
>     at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1511)
> 
>     at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
> 
>     at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
> 
>     at
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
> 
>     at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
> 
>     at
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
> 
>     at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:191)
> 
>     at
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:283)
> 
>     at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:191)
> 
>     at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:620)
> 
>     at
> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:942)
> 
>     at
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
> 
>     at
> org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:139)
> 
>     at
> org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:93)
> 
>     at
> 

Re: JMX Access?

2019-09-25 Thread Tellier Benoit
Hi Jerry
Well,

 1. You are asking sometime hard questions that people can't answers
without significant work overhead.

 2. This is OpenSource. This is Free. This is 'best effort' given a
limited time range.

Please read again carefully the Apache foundation mailing list guide
lines: https://www.apache.org/foundation/policies/conduct.html

I personally do not find the style of your previous email being
'friendly' with the work contributors do. And you are also not patient
with the answers the community provides you for free.

I'd like to mention that some community member will by the way be very
happy to offer a paid support (for example me as part of Linagora
company) might you be unhappy with the support provided as part of the
community.

And for your information, yes, we are using James 3.3.0.

I will answer your JMX question in an other email.

Best regards

On 26/09/2019 12:03, Jerry Malcolm wrote:
> I figure if I keep asking questions, sooner or later I'm going to hit
> one that SOMEBODY can help me withThe issues keep backing up.  And
> my deadline is way too close Is anyone using James 3.3.0?  Yet I'm
> the only one having these out-of-the-box problems?  This migration has
> been an absolute nightmare.
> 
> I still have absolutely NO way to see any logging data for the mailets,
> smtp, imap, etc logs.   So I decided to use JMX to see if there were any
> MBeans exposed that might help me figure out why there is no logging.  
> And, of course with the way everything else has gone, I can't connect to
> James JMX.  JConsole will not connect.  It works fine accessing Tomcat
> using the same approach. But nothing with James.  I'm using a PuTTY
> tunnel directly to the Amazon EC2 instance.
> 
> I went back to an absolute pristine install of JAMES 3.3.0 right out of
> the downloaded zip file.  I made absolutely zero changes to the
> install/config.  Just unpack and run.  No JMX access with out-of-the-box
> James either.  JConsole hangs for about a minute, and gives me an error
> that it can't connect.
> 
> Then I made one change to log4j.properties and bumped everything to
> DEBUG.  Thankfully, the one log file that actually works in this release
> is James-server.log.  I see the following error when James is apparently
> starting up JMX.  The 172.31 IP address it's failing on is my EC2
> public IP.  But the jmx.properties file says to connect to
> 127.0.0.1:.  I never explicitly configured the 172.31... address
> anywhere in James.
> 
> What's causing this:
> 
> INFO  04:29:47,638 |
> org.springframework.remoting.rmi.RmiRegistryFactoryBean | Looking for
> RMI registry at port '', using custom socket factory
> DEBUG 04:29:47,642 |
> org.springframework.remoting.rmi.RmiRegistryFactoryBean | RMI registry
> access threw exception
> java.rmi.ConnectException: Connection refused to host: 172.31.32.236;
> nested exception is:
>     java.net.ConnectException: Connection refused (Connection refused)
>     at
> sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619)
>     at
> sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)
>     at
> sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
>     at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:338)
>     at
> sun.rmi.registry.RegistryImpl_Stub.list(RegistryImpl_Stub.java:85)
>     at
> org.springframework.remoting.rmi.RmiRegistryFactoryBean.testRegistry(RmiRegistryFactoryBean.java:281)
> 
>     at
> org.springframework.remoting.rmi.RmiRegistryFactoryBean.getRegistry(RmiRegistryFactoryBean.java:222)
> 
>     at
> org.springframework.remoting.rmi.RmiRegistryFactoryBean.getRegistry(RmiRegistryFactoryBean.java:193)
> 
>     at
> org.springframework.remoting.rmi.RmiRegistryFactoryBean.afterPropertiesSet(RmiRegistryFactoryBean.java:164)
> 
>     at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1573)
> 
>     at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1511)
> 
>     at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
> 
>     at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
> 
>     at
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
> 
>     at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
> 
>     at
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
> 
>     at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:191)
> 
>     at
> 

Re: JMX Access?

2019-09-25 Thread Jerry Malcolm

Sai,

Thanks for the quick response.  But in the latest 3.3.0 download, there 
is not a james.sh file.  I've been using run.sh.  There is a 
james-cli.sh.  But I have not been using it.  But both the run.sh and 
james-cli.sh files have those two parameters already specified in the 
JAVA command.  So I don't think that could be what's wrong.


Any idea what is causing the exception?

And just out of curiosity, if you are on James 3.3.0, do any of the log 
files in the logs directory have any data in them?  Even out of the box, 
with every log level set to DEBUG, for me the only file that doesn't 
have zero bytes is james-server-log.  My bigger problem than JMX is that 
all of the logging data is being discarded.


Jerry

On 9/26/2019 12:21 AM, Saibabu Vallurupalli wrote:

Hi Jerry,

you need to add JVM options before starting the James server. See the
two parameters below:
Edit james.sh in vi editor or whichever you are comfortable with and
then add  "-Dcom.sun.management.jmxremote=true" and
"-Dcom.sun.management.jmxremote.authenticate=false", see below the way
how I did.

case "$1" in
 start)
 echo Starting James
 nohup java -classpath
"james-server-jpa-guice.jar:james-server-jpa-guice.lib/*:james-server-jpa-guice.lib"
-javaagent:james-server-jpa-guice.lib/openjpa-3.0.0.jar
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.authenticate=false
-Dlogback.configurationFile=conf/logback.xml -Dworking.directory=.
org.apache.james.JPAJamesServerMain > /dev/null 2>&1  &

Do the same for restart) option too just in case if you restart you
may loose JMX option.

Then the JMX gets enabled. The script has issues, these parameters
should be available by default.

Hope this helps and you can meet your deadline now :-)

Let me know how it goes.

Thanks,
Sai

On Thu, Sep 26, 2019 at 1:11 AM Jerry Malcolm  wrote:

I figure if I keep asking questions, sooner or later I'm going to hit
one that SOMEBODY can help me with  The issues keep backing up.  And
my deadline is way too close Is anyone using James 3.3.0?  Yet I'm
the only one having these out-of-the-box problems?  This migration has
been an absolute nightmare.

I still have absolutely NO way to see any logging data for the mailets,
smtp, imap, etc logs.   So I decided to use JMX to see if there were any
MBeans exposed that might help me figure out why there is no logging.
And, of course with the way everything else has gone, I can't connect to
James JMX.  JConsole will not connect.  It works fine accessing Tomcat
using the same approach. But nothing with James.  I'm using a PuTTY
tunnel directly to the Amazon EC2 instance.

I went back to an absolute pristine install of JAMES 3.3.0 right out of
the downloaded zip file.  I made absolutely zero changes to the
install/config.  Just unpack and run.  No JMX access with out-of-the-box
James either.  JConsole hangs for about a minute, and gives me an error
that it can't connect.

Then I made one change to log4j.properties and bumped everything to
DEBUG.  Thankfully, the one log file that actually works in this release
is James-server.log.  I see the following error when James is apparently
starting up JMX.  The 172.31 IP address it's failing on is my EC2
public IP.  But the jmx.properties file says to connect to
127.0.0.1:.  I never explicitly configured the 172.31... address
anywhere in James.

What's causing this:

INFO  04:29:47,638 |
org.springframework.remoting.rmi.RmiRegistryFactoryBean | Looking for
RMI registry at port '', using custom socket factory
DEBUG 04:29:47,642 |
org.springframework.remoting.rmi.RmiRegistryFactoryBean | RMI registry
access threw exception
java.rmi.ConnectException: Connection refused to host: 172.31.32.236;
nested exception is:
  java.net.ConnectException: Connection refused (Connection refused)
  at
sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619)
  at
sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)
  at
sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
  at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:338)
  at
sun.rmi.registry.RegistryImpl_Stub.list(RegistryImpl_Stub.java:85)
  at
org.springframework.remoting.rmi.RmiRegistryFactoryBean.testRegistry(RmiRegistryFactoryBean.java:281)
  at
org.springframework.remoting.rmi.RmiRegistryFactoryBean.getRegistry(RmiRegistryFactoryBean.java:222)
  at
org.springframework.remoting.rmi.RmiRegistryFactoryBean.getRegistry(RmiRegistryFactoryBean.java:193)
  at
org.springframework.remoting.rmi.RmiRegistryFactoryBean.afterPropertiesSet(RmiRegistryFactoryBean.java:164)
  at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1573)
  at

Re: JMX Access?

2019-09-25 Thread Saibabu Vallurupalli
Hi Jerry,

you need to add JVM options before starting the James server. See the
two parameters below:
Edit james.sh in vi editor or whichever you are comfortable with and
then add  "-Dcom.sun.management.jmxremote=true" and
"-Dcom.sun.management.jmxremote.authenticate=false", see below the way
how I did.

case "$1" in
start)
echo Starting James
nohup java -classpath
"james-server-jpa-guice.jar:james-server-jpa-guice.lib/*:james-server-jpa-guice.lib"
-javaagent:james-server-jpa-guice.lib/openjpa-3.0.0.jar
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.authenticate=false
-Dlogback.configurationFile=conf/logback.xml -Dworking.directory=.
org.apache.james.JPAJamesServerMain > /dev/null 2>&1  &

Do the same for restart) option too just in case if you restart you
may loose JMX option.

Then the JMX gets enabled. The script has issues, these parameters
should be available by default.

Hope this helps and you can meet your deadline now :-)

Let me know how it goes.

Thanks,
Sai

On Thu, Sep 26, 2019 at 1:11 AM Jerry Malcolm  wrote:
>
> I figure if I keep asking questions, sooner or later I'm going to hit
> one that SOMEBODY can help me with  The issues keep backing up.  And
> my deadline is way too close Is anyone using James 3.3.0?  Yet I'm
> the only one having these out-of-the-box problems?  This migration has
> been an absolute nightmare.
>
> I still have absolutely NO way to see any logging data for the mailets,
> smtp, imap, etc logs.   So I decided to use JMX to see if there were any
> MBeans exposed that might help me figure out why there is no logging.
> And, of course with the way everything else has gone, I can't connect to
> James JMX.  JConsole will not connect.  It works fine accessing Tomcat
> using the same approach. But nothing with James.  I'm using a PuTTY
> tunnel directly to the Amazon EC2 instance.
>
> I went back to an absolute pristine install of JAMES 3.3.0 right out of
> the downloaded zip file.  I made absolutely zero changes to the
> install/config.  Just unpack and run.  No JMX access with out-of-the-box
> James either.  JConsole hangs for about a minute, and gives me an error
> that it can't connect.
>
> Then I made one change to log4j.properties and bumped everything to
> DEBUG.  Thankfully, the one log file that actually works in this release
> is James-server.log.  I see the following error when James is apparently
> starting up JMX.  The 172.31 IP address it's failing on is my EC2
> public IP.  But the jmx.properties file says to connect to
> 127.0.0.1:.  I never explicitly configured the 172.31... address
> anywhere in James.
>
> What's causing this:
>
> INFO  04:29:47,638 |
> org.springframework.remoting.rmi.RmiRegistryFactoryBean | Looking for
> RMI registry at port '', using custom socket factory
> DEBUG 04:29:47,642 |
> org.springframework.remoting.rmi.RmiRegistryFactoryBean | RMI registry
> access threw exception
> java.rmi.ConnectException: Connection refused to host: 172.31.32.236;
> nested exception is:
>  java.net.ConnectException: Connection refused (Connection refused)
>  at
> sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619)
>  at
> sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)
>  at
> sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
>  at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:338)
>  at
> sun.rmi.registry.RegistryImpl_Stub.list(RegistryImpl_Stub.java:85)
>  at
> org.springframework.remoting.rmi.RmiRegistryFactoryBean.testRegistry(RmiRegistryFactoryBean.java:281)
>  at
> org.springframework.remoting.rmi.RmiRegistryFactoryBean.getRegistry(RmiRegistryFactoryBean.java:222)
>  at
> org.springframework.remoting.rmi.RmiRegistryFactoryBean.getRegistry(RmiRegistryFactoryBean.java:193)
>  at
> org.springframework.remoting.rmi.RmiRegistryFactoryBean.afterPropertiesSet(RmiRegistryFactoryBean.java:164)
>  at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1573)
>  at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1511)
>  at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
>  at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
>  at
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
>  at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
>  at
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)

JMX Access?

2019-09-25 Thread Jerry Malcolm
I figure if I keep asking questions, sooner or later I'm going to hit 
one that SOMEBODY can help me with  The issues keep backing up.  And 
my deadline is way too close Is anyone using James 3.3.0?  Yet I'm 
the only one having these out-of-the-box problems?  This migration has 
been an absolute nightmare.


I still have absolutely NO way to see any logging data for the mailets, 
smtp, imap, etc logs.   So I decided to use JMX to see if there were any 
MBeans exposed that might help me figure out why there is no logging.   
And, of course with the way everything else has gone, I can't connect to 
James JMX.  JConsole will not connect.  It works fine accessing Tomcat 
using the same approach. But nothing with James.  I'm using a PuTTY 
tunnel directly to the Amazon EC2 instance.


I went back to an absolute pristine install of JAMES 3.3.0 right out of 
the downloaded zip file.  I made absolutely zero changes to the 
install/config.  Just unpack and run.  No JMX access with out-of-the-box 
James either.  JConsole hangs for about a minute, and gives me an error 
that it can't connect.


Then I made one change to log4j.properties and bumped everything to 
DEBUG.  Thankfully, the one log file that actually works in this release 
is James-server.log.  I see the following error when James is apparently 
starting up JMX.  The 172.31 IP address it's failing on is my EC2 
public IP.  But the jmx.properties file says to connect to 
127.0.0.1:.  I never explicitly configured the 172.31... address 
anywhere in James.


What's causing this:

INFO  04:29:47,638 | 
org.springframework.remoting.rmi.RmiRegistryFactoryBean | Looking for 
RMI registry at port '', using custom socket factory
DEBUG 04:29:47,642 | 
org.springframework.remoting.rmi.RmiRegistryFactoryBean | RMI registry 
access threw exception
java.rmi.ConnectException: Connection refused to host: 172.31.32.236; 
nested exception is:

    java.net.ConnectException: Connection refused (Connection refused)
    at 
sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619)
    at 
sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)
    at 
sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)

    at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:338)
    at 
sun.rmi.registry.RegistryImpl_Stub.list(RegistryImpl_Stub.java:85)
    at 
org.springframework.remoting.rmi.RmiRegistryFactoryBean.testRegistry(RmiRegistryFactoryBean.java:281)
    at 
org.springframework.remoting.rmi.RmiRegistryFactoryBean.getRegistry(RmiRegistryFactoryBean.java:222)
    at 
org.springframework.remoting.rmi.RmiRegistryFactoryBean.getRegistry(RmiRegistryFactoryBean.java:193)
    at 
org.springframework.remoting.rmi.RmiRegistryFactoryBean.afterPropertiesSet(RmiRegistryFactoryBean.java:164)
    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1573)
    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1511)
    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
    at 
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
    at 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
    at 
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
    at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:191)
    at 
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:283)
    at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:191)
    at 
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:620)
    at 
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:942)
    at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
    at 
org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:139)
    at 
org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:93)
    at 
org.apache.james.container.spring.context.JamesServerApplicationContext.(JamesServerApplicationContext.java:40)
    at 

LetsEncrypt Certificates Not Trusted

2019-09-25 Thread Jerry Malcolm
Still nothing on making the logs work...  While waiting on that, I'm 
moving to SSL.  I was not using SSL on beta5.  So this is likely a 
generic SSL question not specific to 3.3.0.  See the setup and 
configuration info below.  When I try to create an account in 
Thunderbird and also in an iPhone, both Tbird and iPhone say the 
certificate is not trusted.  Any idea what I did wrong?


I have a domain certificate/chain issued by LetsEncrypt that works in 
httpd.  I issued the following three commands per the James SSL setup page:


 keytool -genkeypair -alias simple-cert -keyalg RSA -keysize 2048 
-keystore imapJwmHosting.jks -dname CN=imap1.jwmhosting.com
 keytool -import -alias root  -keystore 
/etc/letsencrypt/live/imap1.jwmhosting.com/imapJwmHosting.jks 
-trustcacerts -file /etc/letsencrypt/live/imap1.jwmhosting.com/chain.pem
 keytool -import -alias james -keystore 
/etc/letsencrypt/live/imap1.jwmhosting.com/imapJwmHosting.jks 
-trustcacerts -file /etc/letsencrypt/live/imap1.jwmhosting.com/cert.pem


In imapserver.xml:

  
file://conf/keystore/imap1.jwmhosting.com/imapJwmHosting.jks
    
org.bouncycastle.jce.provider.BouncyCastleProvider
  

Same process for the smtp side.