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:9999. 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 '9999', 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.<init>(ClassPathXmlApplicationContext.java:139) > > at > org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93) > > at > org.apache.james.container.spring.context.JamesServerApplicationContext.<init>(JamesServerApplicationContext.java:40) > > at > org.apache.james.app.spring.JamesAppSpringMain.init(JamesAppSpringMain.java:56) > > at > org.apache.james.app.spring.JamesAppSpringMain.main(JamesAppSpringMain.java:42) > > Caused by: java.net.ConnectException: Connection refused (Connection > refused) > at java.net.PlainSocketImpl.socketConnect(Native Method) > at > java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) > > at > java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) > > at > java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) > at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) > at java.net.Socket.connect(Socket.java:589) > at java.net.Socket.connect(Socket.java:538) > at java.net.Socket.<init>(Socket.java:434) > at java.net.Socket.<init>(Socket.java:211) > at > org.apache.james.util.RestrictingRMISocketFactory.createSocket(RestrictingRMISocketFactory.java:65) > > at > sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:613) > ... 26 more > > --------------------------------------------------------------------- To unsubscribe, e-mail: server-user-unsubscr...@james.apache.org For additional commands, e-mail: server-user-h...@james.apache.org