4

I'm trying to deploy a Java Servlet application that uses Elasticache. (Tomcat7, Java7 on Beanstalk)

But it gives an error on this statement:

client=new MemcachedClient(new InetSocketAddress(configEndpoint, clusterPort));

The stack:

java.nio.channels.UnresolvedAddressException
at sun.nio.ch.Net.checkAddress(Net.java:127)
at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:644)
at net.spy.memcached.MemcachedConnection.createConnections(MemcachedConnection.java:243)
at net.spy.memcached.MemcachedConnection.<init>(MemcachedConnection.java:182)
at net.spy.memcached.DefaultConnectionFactory.createConnection(DefaultConnectionFactory.java:203)
at net.spy.memcached.MemcachedClient.setupConnection(MemcachedClient.java:338)
at net.spy.memcached.MemcachedClient.initializeClientUsingConfigEndPoint(MemcachedClient.java:300)
at net.spy.memcached.MemcachedClient.<init>(MemcachedClient.java:284)
at net.spy.memcached.MemcachedClient.<init>(MemcachedClient.java:204)
at com.xxx.adserver.GetJs.<init>(GetJs.java:48)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at java.lang.Class.newInstance(Class.java:374)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:143)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1144)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:865)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:136)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:680)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

I tried writing a simple Java program to connect to the Elasticache cluster on the same beanstalk's ec2 instance, and that worked correctly. So it seems some config conflict within tomcat.

neeagl
  • 348
  • 1
  • 13
  • How are you getting configEndpoint and clusterPort in your code? I assume you have already double checked that those values are correct? – Rohit Banga Aug 28 '14 at 20:13
  • Yes, those values are fine. I think its a problem with the security groups configuration of Beanstalk, Elasticache. – neeagl Aug 28 '14 at 20:18
  • But security group configuration is on the ec2 instance and you are saying that a simple Java program that does the same works correctly on the same EC2 instance. – Rohit Banga Aug 28 '14 at 20:20

0 Answers0