Java UnknownHostException何时以及为何?

时间:2011-11-01 16:29:47

标签: java processing

我正在尝试从Processing Sketch发布到网站。 (处理基本上是在一个奇特的环境中运行的Java)。我正在使用这个库:http://libraries.seltar.org/postToWeb/但我不知道这是否有所作为。您可以从下面的堆栈跟踪中看到,这只是Java标准库的包装器。

无论如何,重要的一点是主机“mysite.com”已启动并运行。我从浏览器中看到它。但是当我尝试从Java发布它时,我只是出现了UnknownHostException。

鉴于该网站已启动。这还有什么意思?

该程序当前正在Processing环境中运行。大概是作为Applet。

java.net.UnknownHostException: mysite.com
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:195)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
    at java.net.Socket.connect(Socket.java:529)
    at java.net.Socket.connect(Socket.java:478)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:394)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:529)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:233)
    at sun.net.www.http.HttpClient.New(HttpClient.java:306)
    at sun.net.www.http.HttpClient.New(HttpClient.java:323)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:970)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:911)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:836)
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1014)
    at org.seltar.Bytes2Web.PostToWeb._post(PostToWeb.java:90)
    at org.seltar.Bytes2Web.ByteToWeb.post(ByteToWeb.java:66)
    at experimentPostToWeb.keyPressed(experimentPostToWeb.java:35)
    at processing.core.PApplet.handleKeyEvent(Unknown Source)
    at processing.core.PApplet.dequeueKeyEvents(Unknown Source)
    at processing.core.PApplet.handleDraw(Unknown Source)
    at processing.core.PApplet.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:662)

3 个答案:

答案 0 :(得分:1)

代理问题。您的DNS查找失败是因为在LAN内没有注册到该网站,并且ProxySelector没有使用代理来访问互联网。

答案 1 :(得分:0)

你可能只是使用link()方法处理 http://processing.org/reference/link_.html 通过这种方式,您可以验证处理实际上是否正在查看您的页面,从那里您可以尝试发布到它。

答案 2 :(得分:0)

您可以将-Djava.rmi.server.hostname = -Dremoting.bind_by_host = false添加到服务器上的运行脚本