当我使用Ehcache 2缓存AWS lambda中Java代码中的一个变量时,出现以下错误。 EhCache是否运行无服务器的Aws Lambda?
ERROR Unable to set localhost. This prevents creation of a GUID. Cause was: ip-10-22-209-10: ip-10-22-209-10: Name or service not known (net.sf.ehcache.Cache:224)
java.net.UnknownHostException: ip-10-22-209-10: ip-10-22-209-10: Name or service not known
at java.net.InetAddress.getLocalHost(InetAddress.java:1505)
at net.sf.ehcache.Cache.<clinit>(Cache.java:222)
at net.sf.ehcache.config.ConfigurationHelper.createCache(ConfigurationHelper.java:305)
at net.sf.ehcache.config.ConfigurationHelper.createCaches(ConfigurationHelper.java:238)
at net.sf.ehcache.CacheManager.addConfiguredCaches(CacheManager.java:816)
at net.sf.ehcache.CacheManager.doInit(CacheManager.java:498)
at net.sf.ehcache.CacheManager.init(CacheManager.java:394)
at net.sf.ehcache.CacheManager.<init>(CacheManager.java:269)
at net.sf.ehcache.CacheManager.newInstance(CacheManager.java:1103)
at net.sf.ehcache.CacheManager.newInstance(CacheManager.java:879)
at net.sf.ehcache.CacheManager.create(CacheManager.java:860)
at net.sf.ehcache.CacheManager.getInstance(CacheManager.java:894)
at com.capitalone.stsedh.datawise.engine.lite.core.service.RuleExecutionServiceImpl.<init>(RuleExecutionServiceImpl.java:50)
答案 0 :(得分:2)
EHCache使用本地计算机的IP地址作为construct a GUID(可疑)方式的一部分 (添加本地计算机的IP地址确实不会提供比128位加密随机数更多的全局唯一性,尤其是在许多服务器在私有IP上运行的世界中。)
看来,虽然Java代码能够检索本地计算机的主机名,但Lambda无法解析该主机名。因此,无法在GUID中使用该信息。
但是,未能解析IP不会导致GUID生成失败。日志消息来自catch block,看起来异常只会将localhost
变量设置为null
。因此生成的GUID将具有&#34; null&#34;而不是&#34; 10.22.209.10&#34;。