Прошло много времени с тех пор, как я работал с Java, особенно с исключениями. Я нахожусь в процессе добавления ektorp couchdb интеграции в то, над чем я работаю. Тем не менее, я сталкиваюсь с потребляемым контентом.
В рассматриваемой программе используется twitter4j, и я получаю свои статусы и записываю их в экземпляр couchdb.
public void putTweet(Status status)
{
Map<String, Object> newTweetDoc = new HashMap<String, Object>();
String docname = status.getUser().getName() + " "
+ status.getCreatedAt().toString();
newTweetDoc.put("_id", docname);
newTweetDoc.put("User", status.getUser().getName());
newTweetDoc.put("Contents", status.getText());
newTweetDoc.put("Created", status.getCreatedAt().toString());
newTweetDoc.put("RetweetCount", status.getRetweetCount());
UserMentionEntity[] mentions = status.getUserMentionEntities();
Map<String, HashMap<String, String>> formattedMentions = formatMentions(mentions);
newTweetDoc.put("Mentions", formattedMentions);
db.addToBulkBuffer(newTweetDoc);
}
Сначала я тоже попробовал db.create (newTweetDoc). Нужно ли заново создавать couchdbConnector каждый раз, когда я пытаюсь это сделать?
db - это глобальный CouchDbConnector:
public CouchDbConnector db = null;
public CouchTwitter()
{
//create the db connection etc
}
Это ошибка db.create (doc) или flushBulkBuffer, которая приводит к ошибке. Вот трассировка стека:
Exception in thread "main" java.lang.IllegalStateException: Content has been consumed
at org.apache.http.entity.BasicHttpEntity.getContent(BasicHttpEntity.java:84)
at org.apache.http.conn.BasicManagedEntity.getContent(BasicManagedEntity.java:88)
at org.ektorp.http.StdHttpResponse.releaseConnection(StdHttpResponse.java:82)
at org.ektorp.http.RestTemplate.handleResponse(RestTemplate.java:111)
at org.ektorp.http.RestTemplate.post(RestTemplate.java:66)
at org.ektorp.impl.StdCouchDbConnector.executeBulk(StdCouchDbConnector.java:638)
at org.ektorp.impl.StdCouchDbConnector.executeBulk(StdCouchDbConnector.java:596)
at org.ektorp.impl.StdCouchDbConnector.flushBulkBuffer(StdCouchDbConnector.java:617)
В приведенном выше примере я вижу, что два отдельных класса Entity вызывают .getContent (), я недавно поигрался с моими ссылочными библиотеками. Возможно ли, что он вызывает как старый Apache Http lib, так и текущий? *