首页 文章

线程“main”中的异常com.sun.jersey.api.client.ClientHandlerException:java.net.ConnectException:连接被拒绝:连接

提问于
浏览
2

我使用neo4j 2.2.4

我试试这个程序,这是我的测试代码

package neo4j.rest.client;
import javax.ws.rs.core.MediaType;
import org.json.JSONObject;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
public class MyRestClient {
public static void main(String[] args) {
    MyRestClient jersey = new MyRestClient();
    jersey.createNode();
    jersey.sendCypher();        
}
public void createNode(){   
    //Create a REST Client
    Client client = Client.create();
    //Define a resource (REST Endpoint) which needs to be Invoked 
    //for creating a Node
    WebResource resource = client.resource("http://localhost:7474").path("/db/data/node");
    //Define properties for the node.
    JSONObject node = new JSONObject();
    node.append("Name", "John");        
    System.out.println(node.toString());        
    //Invoke the rest endpoint as JSON request
    ClientResponse res = resource.accept(MediaType.APPLICATION_JSON)
    .entity(node.toString())
    .post(ClientResponse.class);
    //Print the URI of the new Node
    System.out.println("URI of New Node = " + res.getLocation());       
}
public void sendCypher() {
    //Create a REST Client
    Client client = Client.create();
    //Define a resource (REST Endpoint) which needs to be Invoked 
    //for executing Cypher Query
    WebResource resource = client.resource("http://localhost:7474").path("/db/data/cypher");
    //Define JSON Object and Cypher Query
    JSONObject cypher = new JSONObject();
    cypher.accumulate("query", "match n return n limit 10");
    //Invoke the rest endpoint as JSON request
    ClientResponse res = resource.accept(MediaType.APPLICATION_JSON).entity(cypher.toString())
    .post(ClientResponse.class);
    //Print the response received from the Server
    System.out.println(res.getEntity(String.class));
}
}

这是我的错误信息,

{“Name”:[“John”]}线程“main”中的异常com.sun.jersey.api.client.ClientHandlerException:java.net.ConnectException:连接被拒绝:连接com.sun.jersey.client.urlconnection位于com.sun.jersey.api.client.Client.handle(Client.java:648)的com.sun.jersey.api.client.WebResource.handle上的.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:149)(WebResource.java :670)在com.sun.jersey.api.client.WebResource.access $ 200(WebResource.java:74)at comn . 的com.sun.jersey.api.client.WebResource $ Builder.post(WebResource.java:553)在neo4j.rest.client.MyRestClient.main(MyRestClient.java:14)的.rest.client.MyRestClient.createNode(MyRestClient.java:30)引起:java.net.ConnectException:拒绝连接:在java.net连接 . java.net.AbstractPlainSocketImpl.connect(LivePlainSocketImpl.java:337)的java.net.AualStackPocketSmplImpl.mplConnect(AbstractStlainPlainImpl.java:337)中的java(自动方法) java.net.SocksSocketImpl.connect(SocksSocketSmplImpl.java)中的java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157)中的java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180)中的nectToAddress(AbstractPlainSocketImpl.java:198) :391)at java.net.Socket.connect(Socket.java:579)at java.net.Socket.connect(Socket.java:528)at sun.net.NetworkClient.doConnect(NetworkClient.java:180)at sun .net.www.http.HttpClient.openServer(HttpClient.java:388)at sun.net.www.http.HttpClient.openServer(HttpClient.java:483)at sun.net.www.http.HttpClient . (HttpClient . java:213)at sun.net.www.http.HttpClient.New(HttpClient.java:300)at sun.net.www.http.HttpClient.New(HttpClient.java:316)at sun.net.www.protocol .http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:992)at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:928)at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection .java:846)at sun.net.www.protocol.http.HttpURLConnection.ge tOutputStream(HttpURLConnection.java:1087)at com.sun.jersey.client.urlconnection.URLConnectionClientHandler $ 1 $ 1.getOutputStream(URLConnectionClientHandler.java:225)at com.sun.jersey.api.client.CommittingOutputStream.commitWrite(CommittingOutputStream.java: 117)at.sun.jersey.api.client.CommittingOutputStream.write(CommittingOutputStream.java:89)at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221)at sun.nio.cs.StreamEncoder.implFlushBuffer (StreamEncoder.java:291)at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:295)at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:141)at java.io.OutputStreamWriter.flush( OutputStreamWriter.java:229)at java.io.BufferedWriter.flush(BufferedWriter.java:254)at com.sun.jersey.core.util.ReaderWriter.writeToAsString(ReaderWriter.java:191)at com.sun.jersey.core .provider.AbstractMessageReaderWriterProvider.writeToAsString(AbstractMessageReaderWriterProvider.java:128)at com.sun.jersey.core.impl.provider.entity.StringProvider.write To(StringProvider.java:88)com.sun.jersey.core.impl.provider.entity.StringProvider.writeTo(StringProvider.java:58)at com.sun.jersey.api.client.RequestWriter.writeRequestEntity(RequestWriter . java:300)at com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:204)at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:147) ... 6更多

谢谢 .

1 回答

  • 2
    • 检查您的Neo4j服务器是否已启动并正在运行 . 只需在浏览器中打开http://localhost:7474即可 .

    • 如果您使用Neo4j的默认设置,您的代码将起作用 . 因为默认情况下启用授权 . 您有两种选择:

    • 在您的请求中添加授权标头

    client.addFilter(new HTTPBasicAuthFilter(“neo4j”,“your_password”));

    neo4j-server.properties

    # Disable authorization
    dbms.security.auth_enabled=false
    

相关问题