通过Java接口远程访问ArangoDB

通过Java接口远程访问ArangoDB,java,arangodb,Java,Arangodb,我开发了一个Java应用程序,它使用ArangoDB作为后端数据库(使用ArangoDB Java驱动程序/接口访问ArangoDB) 在ArangoDB和应用程序驻留在同一台机器上之前,一切都很好 一旦我将ArangoDB移动到远程计算机(专用服务器),我的应用程序将无法访问它:( 我在一些属性文件中提供了我的远程计算机详细信息(ArangoDB服务器),并在创建ArangoDriver对象时将该文件位置提供给ArangoConfigure构造函数。但我仍然无法访问ArangoDB:( 下面是

我开发了一个Java应用程序,它使用ArangoDB作为后端数据库(使用ArangoDB Java驱动程序/接口访问ArangoDB)

在ArangoDB和应用程序驻留在同一台机器上之前,一切都很好

一旦我将ArangoDB移动到远程计算机(专用服务器),我的应用程序将无法访问它:(

我在一些属性文件中提供了我的远程计算机详细信息(ArangoDB服务器),并在创建ArangoDriver对象时将该文件位置提供给ArangoConfigure构造函数。但我仍然无法访问ArangoDB:(

下面是我的代码片段:

protected static ArangoConfigure getConfiguration() {
        //ArangoConfigure configure = new ArangoConfigure();
        ArangoConfigure configure = new
ArangoConfigure("/Volumes/Official/ZLabs/arangodb.properties");
                configure.init();

        return configure;   }

    protected static ArangoDriver getArangoDriver(ArangoConfigure
configuration) {        return new ArangoDriver(configuration);     }
请在这方面帮助我

等待您的回复

谢谢并致以最良好的问候,
-Mahi

如果Aranngodb Java驱动程序无法打开或解析
/Volumes/Official/ZLabs/arangodb.properties
它会发出一条日志消息

如果arangodb属性如下所示:

port=8529
host=192.168.22.17
user=root
password=OpenSesame
enableCURLLogger=false
您开始调试TCP连接问题,以避免由于防火墙、路由等原因可能出现的连接问题。 一种是使用常用的telnet命令来测试服务器的可用性:

telnet 192.168.22.17 8529
Trying 192.168.22.17...
如果它永远存在,你很可能会被防火墙过滤掉,你最终会得到:

telnet: Unable to connect to remote host: Connection timed out
如果立即退出,请执行以下操作:

telnet: Unable to connect to remote host: Connection refused
服务器似乎没有应答

在服务器端,您可以检查服务是否已绑定您尝试连接的端口(8529):

netstat -alpnt |grep 8529
tcp        0      0 0.0.0.0:8529            0.0.0.0:*               LISTEN      19912/arangod   
如果您看到它绑定了
127.0.0.1:8529
,您将无法远程连接它,需要像这样更改arangod.conf:

[server]
endpoint = tcp://0.0.0.0:8529
telnet 192.168.22.17 8529
Trying 192.168.22.17...
Connected to 192.168.22.17.
Escape character is '^]'. <start to type now: >
GET / HTTP/1.0

<server should reply:>
HTTP/1.1 301 Moved Permanently
Location: /_db/_system/_admin/aardvark/index.html
Content-Type: text/html
Server: ArangoDB
Connection: Close
Content-Length: 197

<html><head><title>Moved</title></head><body><h1>Moved</h1>
<p>This page has moved to <a href="/_db/_system/_admin/aardvark/index.html">/_db/_system/_admin/aardvark/index.html</a>.
</p></body></html>Connection closed by foreign host.
然后重新启动ArangoDB。然后,您应该能够看到如下内容:

[server]
endpoint = tcp://0.0.0.0:8529
telnet 192.168.22.17 8529
Trying 192.168.22.17...
Connected to 192.168.22.17.
Escape character is '^]'. <start to type now: >
GET / HTTP/1.0

<server should reply:>
HTTP/1.1 301 Moved Permanently
Location: /_db/_system/_admin/aardvark/index.html
Content-Type: text/html
Server: ArangoDB
Connection: Close
Content-Length: 197

<html><head><title>Moved</title></head><body><h1>Moved</h1>
<p>This page has moved to <a href="/_db/_system/_admin/aardvark/index.html">/_db/_system/_admin/aardvark/index.html</a>.
</p></body></html>Connection closed by foreign host.
telnet 192.168.22.17 8529
正在尝试192.168.22.17。。。
已连接到192.168.22.17。
转义字符为“^]”。
GET/HTTP/1.0
HTTP/1.1 301永久移动
位置:/\u db/\u system/\u admin/aardvark/index.html
内容类型:text/html
服务器:ArangoDB
连接:关闭
内容长度:197
移动
此页面已移至。

连接已被外部主机关闭。
首先感谢@dothebart对您的帮助

@dothebart,在我发布之前,我已经检查了你提到的所有细节。唯一遗漏的是HTTP连接,谢谢你指出这一点

实际上,下面的代码更改已经为我解决了这个问题

早期代码:

ArangoConfigure configure = new ArangoConfigure("/home/arango.properties");
configure.init();
ArangoDriver driver = new ArangoDriver(configuration);
ArangoConfigure configure = new ArangoConfigure("/home/arango.properties");
ArangoHost hostObj = new ArangoHost(<IP-Address>, 8529);
configure.setArangoHost(hostObj);
configure.setUser(<user-name>);
configure.setPassword(<password>);
configure.init();
ArangoDriver driver = new ArangoDriver(configuration);
修改代码:

ArangoConfigure configure = new ArangoConfigure("/home/arango.properties");
configure.init();
ArangoDriver driver = new ArangoDriver(configuration);
ArangoConfigure configure = new ArangoConfigure("/home/arango.properties");
ArangoHost hostObj = new ArangoHost(<IP-Address>, 8529);
configure.setArangoHost(hostObj);
configure.setUser(<user-name>);
configure.setPassword(<password>);
configure.init();
ArangoDriver driver = new ArangoDriver(configuration);
ArangoConfigure=newarangoconfigure(“/home/arango.properties”);
arangoost hostObj=新的arangoost(,8529);
configure.setarangoost(hostObj);
configure.setUser();
configure.setPassword();
configure.init();
ArangoDriver=新的ArangoDriver(配置);
再次设置主机、用户名和密码使其正常工作:(

文件中有所有的细节,那我为什么还要再提供一次呢..我不明白


@dothebart我找不到日志文件,请告诉我在哪里可以找到它。

在类路径中似乎找不到属性文件

应该在项目的日志配置文件中配置日志文件的路径。 您的项目可以使用例如(logback.xml)或其他实现