我使用couchdb4j与couchDB建立连接,就像主题中的用户一样:Java couchdb4j数据库连接
因此,在本地,我可以通过使用连接到couchdb
Session LocalSession= new Session("localhost", 5984);
但当我尝试使用我公司的couchdb版本时,它不起作用。。我得到了这个错误:(NB我担任管理员)
avr. 02, 2015 5:31:04 PM com.fourspaces.couchdb.Session createDatabase
Avertissement: Error creating database: mydatabase
Exception in thread "main" java.lang.NullPointerException
at filecomparison.DbaseManag.saveFinalDocument(DbaseManag.java:359)
at filecomparison.DbaseManag.saveEntryQueryLog(DbaseManag.java:247)
at filecomparison.LoadFiles.loadVirtuosoLog(LoadFiles.java:207)
at filecomparison.LoadFiles.loadingQueryLog(LoadFiles.java:772)
at filecomparison.Main.main(Main.java:197)
在";couchdb4j";库我观察到会话构造函数有4个不同的版本(但没有一个版本使用参数布尔使用验证):
公共会话(字符串主机,int端口,布尔安全)
公共会话(字符串主机,int端口)
公共会话(字符串主机、int端口、字符串用户、字符串传递、布尔安全)
公共会话(字符串主机、int端口、字符串用户、字符串传递)
不管怎样,我试着全部使用它们,但没有成功(即使创建了Session对象)
在运行java代码时,我还尝试使用以下命令查看服务器日志中打印的内容:
tail -f /var/log/couchdb/couch.log
我意识到总是有同样的错误:
[Tue, 07 Apr 2015 14:07:29 GMT] [debug] [<0.1738.0>] 'DELETE' /mydatabase {1,1} from "127.0.0.1"
Headers: [{'Host',"127.0.0.1:5984"},
{'User-Agent',"Jakarta Commons-HttpClient/3.1"}]
[Tue, 07 Apr 2015 14:07:29 GMT] [debug] [<0.1738.0>] OAuth Params: []
[Tue, 07 Apr 2015 14:07:29 GMT] [debug] [<0.1738.0>] Minor error in HTTP request: {unauthorized,
<<"You are not a server admin.">>}
搜索了一段时间后,我看到了使用curl命令解决此身份验证问题的一些解决方案,就像本主题中使用管理服务器凭据打开CouchDB会话一样。例如
curl -X DELETE http://username:password@localhost:5984/mydatabase
但是有人知道如何用我的java代码解决问题吗?我应该更改库吗?还是这是couchdb配置的问题?
提前感谢您的任何提示!
问候
这是CouchDB配置的问题吗
也许不是
正如您在日志行引用中所显示的那样,java代码不会发送任何身份验证信息。您可以将这些日志行与curl
请求结果中出现的日志行进行比较。应存在例如Auth或Cookie标头。
也许是的
你说相同的代码成功/失败取决于CouchDB目标?然后,比较两个CouchDB安装的身份验证处理程序配置可能是值得的。也许您的库正在使用的身份验证方法没有在远程CouchDB中处理。