gpt4 book ai didi

gwt - 使用 Java 在 CouchDB 2.0 fauxton 中创建文档

转载 作者:搜寻专家 更新时间:2023-10-31 20:25:49 25 4
gpt4 key购买 nike

我创建了一个默认的 GWT 项目,并尝试使用 CouchDB 作为我的数据库在数据库中创建一个包含简单条目的文档。以前我们使用 CouchDB 1.6,即 futon 作为 UI。现在,最近尝试使用 CouchDB 2.0,即 Fauxton 作为 UI。

问题:-

无法在 CouchDB 2.0 中创建文档。

服务器端代码:-

public String greetServer(String input) throws IllegalArgumentException {
// Verify that the input is valid.
System.out.println(input);

Session session=new Session("192.168.1.48",5984);
Database db=session.getDatabase("testing");
Document doc=new Document();
doc.put("name", input);
db.saveDocument(doc);

return "Hello, " + input;
}

异常(exception):-

2017-02-22 17:23:41.147:WARN:/:qtp10750155-45: Exception while dispatching incoming RPC call
com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract java.lang.String com.dbconnect.client.GreetingService.greetServer(java.lang.String) throws java.lang.IllegalArgumentException' threw an unexpected exception: net.sf.json.JSONException: JSONObject["update_seq"] is not a number.
at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:416)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:605)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:333)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:303)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:373)
at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:95)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:499)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Unknown Source)
Caused by:
net.sf.json.JSONException: JSONObject["update_seq"] is not a number.
at net.sf.json.JSONObject.getDouble(JSONObject.java:2090)
at net.sf.json.JSONObject.getInt(JSONObject.java:2109)
at com.fourspaces.couchdb.Database.<init>(Database.java:50)
at com.fourspaces.couchdb.Session.getDatabase(Session.java:185)
at com.dbconnect.server.GreetingServiceImpl.greetServer(GreetingServiceImpl.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:587)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:333)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:303)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:373)
at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:95)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:499)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Unknown Source)

/*************************************编辑 1************ *****************/ Link where mentioned about update_seq

  • 问题是我们没有通过我们的代码更新 update_seq,它在数据库中创建文档时自动完成。所以,不知道是什么问题。

  • 忘记写了,数据库是在 CouchDB 2.0 上通过 java 轻松创建的。

  • 我们是否必须使用新版本的 JAR 文件>? COUCHDB JARS(USED AT TIME OF 1\COUCHDB 1.6

最佳答案

问题与 couchdb4j 太旧有关(github 上的最后一次提交是将近 5 年前)。

这篇文章还说明了这一点,并建议使用更积极地工作的客户端库,例如Ektorp(参见 CouchDB Java client)。

您面临的 couchbd4j 问题的背景

您链接的迁移文档 ( https://blog.couchdb.org/2016/08/17/migrating-to-couchdb-2-0/ ) 指出:

Most importantly, the update seq, or sequence, is not a number any longer but a string.

正如您所说,您不直接处理 update_seq,但 couchdb4j 会处理。

couchdb4j 客户端库的当前实现使用以下代码将服务器响应属性 update_seq 解析为整数:

updateSeq = json.getInt("update_seq");

这将不再适用于 CouchDb 2.0

这是包含此行的最新代码的链接:https://github.com/mbreese/couchdb4j/blob/master/src/java/com/fourspaces/couchdb/Database.java (见第 59 行)

希望对你有所帮助基督徒

关于gwt - 使用 Java 在 CouchDB 2.0 fauxton 中创建文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42391100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com