пятница, 8 ноября 2013 г.

GWT Development Mode и org.apache.http. Устранение конфликта

Я разрабатываю web-приложение с использованием GWT и клиента Apache CouchDB. В качестве клиента я пробовал использовать Ektorp и LightCouch. Каждый из них зависит от Apache HttpClient. При отладке приложения в GWT Development Mode возникает ошибка:
java.lang.NoSuchMethodError: org.apache.http.impl.conn.DefaultClientConnectionOperator.(Lorg/apache/http/conn/scheme/SchemeRegistry;Lorg/apache/http/conn/DnsResolver;)V
 at org.apache.http.impl.conn.PoolingClientConnectionManager.createConnectionOperator(PoolingClientConnectionManager.java:140)
Это происходит потому, что в последней версии gwt-2.5.1 в файле gwt-dev.jar содержится устаревшая версия 4.1.2 Apache HttpClient, несовместимая с используемыми клиентами org.ektorp-1.4.1.jar и lightcouch-0.0.7.jar.
Я скачал два архива:
  • httpcore-4.2.5.jar
  • httpclient-4.2.5.jar
удалил из архива gwt-dev.jar содержимое org/apache/http и добавил это же содержимое из скачанных архивов. После этого всё работает нормально, без ошибок. Привожу список добавленных папок и файлов:
annotation
auth
client
concurrent
conn
cookie
entity
impl
io
message
params
pool
protocol
util
ConnectionClosedException.class
ConnectionReuseStrategy.class
Consts.class
ContentTooLongException.class
FormattedHeader.class
Header.class
HeaderElement.class
HeaderElementIterator.class
HeaderIterator.class
HttpClientConnection.class
HttpConnection.class
HttpConnectionMetrics.class
HttpEntity.class
HttpEntityEnclosingRequest.class
HttpException.class
HttpHeaders.class
HttpHost.class
HttpInetConnection.class
HttpMessage.class
HttpRequest.class
HttpRequestFactory.class
HttpRequestInterceptor.class
HttpResponse.class
HttpResponseFactory.class
HttpResponseInterceptor.class
HttpServerConnection.class
HttpStatus.class
HttpVersion.class
MalformedChunkCodingException.class
MethodNotSupportedException.class
NameValuePair.class
NoHttpResponseException.class
ParseException.class
ProtocolException.class
ProtocolVersion.class
ReasonPhraseCatalog.class
RequestLine.class
StatusLine.class
TokenIterator.class
TruncatedChunkException.class
UnsupportedHttpVersionException.class
version.properties

Комментариев нет:

Отправить комментарий