天天看點

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。