如何解决使用java访问远程neo4j
我正在尝试使用 java 代码连接到远程 neo4j。看这个代码:
Driver driver = GraphDatabase.driver(url,AuthTokens.basic(username,password));
Session session = driver.session();
StatementResult result = session.run(query);
ArrayList<Map<String,Object>> list = new ArrayList<>();
while (result.hasNext()) {
Record record = result.next();
list.add(record.asMap());
}
session.close();
driver.close();
我通过 SSLException 不断得到这个:
Apr 09,2021 10:04:26 AM org.neo4j.driver.internal.logging.JULogger info
INFO: Direct driver instance 35238198 created for server address 89e9795b-eu-de.lb.appdomain.cloud:7687
Apr 09,2021 10:04:33 AM org.neo4j.driver.internal.logging.JULogger info
INFO: Closing connection pool towards 89e9795b-eu-de.lb.appdomain.cloud:7687
Exception in thread "main" org.neo4j.driver.v1.exceptions.ServiceUnavailableException: Failed to establish connection with the server
at org.neo4j.driver.internal.util.Futures.blockingGet(Futures.java:123)
at org.neo4j.driver.internal.DriverFactory.verifyConnectivity(DriverFactory.java:349)
at org.neo4j.driver.internal.DriverFactory.newInstance(DriverFactory.java:95)
at org.neo4j.driver.v1.GraphDatabase.driver(GraphDatabase.java:141)
at org.neo4j.driver.v1.GraphDatabase.driver(GraphDatabase.java:124)
at com.ibm.research.appmod.mf.Neo4JClient.executeQuery(Neo4JClient.java:46)
at com.ibm.research.appmod.mf.Neo4JClient.executeQuery(Neo4JClient.java:80)
at com.ibm.research.appmod.mf.Neo4JClient.executeQuery(Neo4JClient.java:76)
at com.ibm.research.appmod.mf.Neo4JClient.main(Neo4JClient.java:109)
Suppressed: org.neo4j.driver.internal.util.ErrorUtil$InternalExceptionCause
at org.neo4j.driver.internal.async.HandshakeHandler.transformError(HandshakeHandler.java:199)
at org.neo4j.driver.internal.async.HandshakeHandler.exceptionCaught(HandshakeHandler.java:96)
at org.neo4j.driver.internal.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:285)
at org.neo4j.driver.internal.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:264)
at org.neo4j.driver.internal.shaded.io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:256)
at org.neo4j.driver.internal.shaded.io.netty.handler.ssl.SslHandler.exceptionCaught(SslHandler.java:1030)
at org.neo4j.driver.internal.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:285)
at org.neo4j.driver.internal.shaded.io.netty.channel.AbstractChannelHandlerContext.notifyHandlerException(AbstractChannelHandlerContext.java:850)
at org.neo4j.driver.internal.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:364)
at org.neo4j.driver.internal.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at org.neo4j.driver.internal.shaded.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at org.neo4j.driver.internal.shaded.io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
at org.neo4j.driver.internal.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at org.neo4j.driver.internal.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at org.neo4j.driver.internal.shaded.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at org.neo4j.driver.internal.shaded.io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1414)
at org.neo4j.driver.internal.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at org.neo4j.driver.internal.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at org.neo4j.driver.internal.shaded.io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:945)
at org.neo4j.driver.internal.shaded.io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:146)
at org.neo4j.driver.internal.shaded.io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:645)
at org.neo4j.driver.internal.shaded.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580)
at org.neo4j.driver.internal.shaded.io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497)
at org.neo4j.driver.internal.shaded.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459)
at org.neo4j.driver.internal.shaded.io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886)
at org.neo4j.driver.internal.shaded.io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:811)
Caused by: javax.net.ssl.SSLException: Received fatal alert: protocol_version
at com.ibm.jsse2.k.a(k.java:19)
at com.ibm.jsse2.aq.a(aq.java:604)
at com.ibm.jsse2.aq.a(aq.java:192)
at com.ibm.jsse2.aq.j(aq.java:161)
at com.ibm.jsse2.aq.b(aq.java:303)
at com.ibm.jsse2.aq.a(aq.java:316)
at com.ibm.jsse2.aq.unwrap(aq.java:370)
at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:11)
at org.neo4j.driver.internal.shaded.io.netty.handler.ssl.SslHandler$SslEngineType$3.unwrap(SslHandler.java:292)
at org.neo4j.driver.internal.shaded.io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1257)
at org.neo4j.driver.internal.shaded.io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1159)
at org.neo4j.driver.internal.shaded.io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1203)
at org.neo4j.driver.internal.shaded.io.netty.handler.codec.BytetoMessageDecoder.decodeRemovalReentryProtection(BytetoMessageDecoder.java:489)
at org.neo4j.driver.internal.shaded.io.netty.handler.codec.BytetoMessageDecoder.callDecode(BytetoMessageDecoder.java:428)
at org.neo4j.driver.internal.shaded.io.netty.handler.codec.BytetoMessageDecoder.channelRead(BytetoMessageDecoder.java:265)
at org.neo4j.driver.internal.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at org.neo4j.driver.internal.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at org.neo4j.driver.internal.shaded.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at org.neo4j.driver.internal.shaded.io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
at org.neo4j.driver.internal.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at org.neo4j.driver.internal.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at org.neo4j.driver.internal.shaded.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at org.neo4j.driver.internal.shaded.io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1414)
at org.neo4j.driver.internal.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at org.neo4j.driver.internal.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at org.neo4j.driver.internal.shaded.io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:945)
at org.neo4j.driver.internal.shaded.io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:146)
at org.neo4j.driver.internal.shaded.io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:645)
at org.neo4j.driver.internal.shaded.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580)
at org.neo4j.driver.internal.shaded.io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497)
at org.neo4j.driver.internal.shaded.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459)
at org.neo4j.driver.internal.shaded.io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886)
at org.neo4j.driver.internal.shaded.io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:811)
我也试过这个:
Config config = Config.builder()
.withEncryption()
.withTrustStrategy( Config.TrustStrategy.trustAllCertificates() )
.build();
Driver driver = GraphDatabase.driver(url,password),config);
Session session = driver.session();
StatementResult result = session.run(query);
ArrayList<Map<String,Object>> list = new ArrayList<>();
while (result.hasNext()) {
Record record = result.next();
list.add(record.asMap());
}
session.close();
driver.close();
我有另一个可以连接到同一个 neo4j 的应用程序。这是一个 springboot 应用程序,因此它不会像 avove 代码那样使用直接查询。我需要做什么才能使其工作?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。