我正在使用couchdb4j与couchDB建立连接,就像主题中的用户一样: Java couchdb4j DB connection
所以本地我只需使用:
即可连接到couchdbSession 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个不同版本的Session构造函数(但是没有使用参数 boolean usesAuth 的版本):
public Session(String host,int port,boolean secure)
public Session(String host,int port)
public Session(String host,int port,String user,String pass,boolean secure)
public Session(String host,int port,String user,String pass)
无论如何,我尝试使用它们,但它没有用(即使创建了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命令的一些此身份验证问题的解决方案,就像这个主题open CouchDB session with admin server credential一样。 E.g。
curl -X DELETE http://username:password@localhost:5984/mydatabase
但有谁知道如何用我的java代码解决?我应该更改库还是sanddb配置的问题?
提前感谢任何提示!
此致
答案 0 :(得分:1)
正如您在日志行引用中所示 - 您的Java代码不会发送任何身份验证信息。您可以将这些日志行与curl
请求的结果中出现的日志行进行比较。应该有例如存在Auth或Cookie标头。
你说相同的代码成功/失败取决于CouchDB目标?那么可能值得比较两个CouchDB安装的身份验证处理程序配置。也许您的库正在使用的身份验证方法不在远程CouchDB中处理。