1. 程式人生 > >java.net.UnknownHostException的解決辦法

java.net.UnknownHostException的解決辦法

今天使用java時,碰到如下問題。

org.apache.jasper.JasperException: Exception in JSP: /admin/_info.jsp:43

40: }
41:
42: String collectionName = schema!=null ? schema.getName():"unknown";
43: InetAddress addr = InetAddress.getLocalHost();
44: String hostname = addr.getCanonicalHostName();
45:
46: String defaultSearch = "";


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:467)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:133)

root cause

java.net.UnknownHostException: app10: app10
java.net.InetAddress.getLocalHost(InetAddress.java:1308)
org.apache.jsp.admin.index_jsp._jspService(index_jsp.java:95)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:133)

這是一個 java/dns 引起的問題,可能的原因是:

1) 使用了一個不合適的host名字,不能進行DNS解析host。
2) 在 JVM 正在執行時,更改了host名,cache中返回的host名已經和伺服器設定不匹配了。

解決的辦法,也就是兩種了,首先檢查你的伺服器名是否設定在hosts裡。如果一切正確,則重新整理JVM的cache。