今天在用程序向Neo4j導入csv文件時,報以下錯誤:
java.net.ConnectException: Connection refused: connect java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is: java.net.ConnectException: Connection refused: connect at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source) at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source) at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source) at sun.rmi.server.UnicastRef.invoke(Unknown Source) at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(Unknown Source) at java.rmi.server.RemoteObjectInvocationHandler.invoke(Unknown Source) at $Proxy0.getAllSections(Unknown Source) at ccg.boccrawler.rmi.TestClient.main(TestClient.java:21)
經查明原因后,發現這個問題其實是由rmi服務器端程序造成的。 客戶端程序向服務端請求一個對象的時候,返回的stub對象里面包含了服務器的hostname,客戶端的后續操作根據這個hostname來連接服務器端。要想知道這個hostname具體是什么值可以在服務器端bash中打入指令:hostname -i 如果返回的是127.0.0.1,那么你的客戶端肯定會拋如標題的異常了。
解決方法:
先在/etc/hosts里添加一行,然后修改/etc/sysconfig/network文件里面的HOSTNAME
如你的hosts文件原來內容
127.0.0.1 localhost.localdomain
機器的實際IP為192.168.57.90,則可以添加以下內容
192.168.57.90 alias
然后修改/etc/sysconfig/network文件的HOSTNAME=alias
修改后程序正常運行。
參考資料:http://scork520.blog.163.com/blog/static/49099202201081324215183/
