如何在Android应用程序中使用spring?

如何在Android应用程序中使用spring?,android,android-asynctask,spring-android,Android,Android Asynctask,Spring Android,我试图在我的android应用程序中使用spring作为我的springmvc REST应用程序的客户端。我想我在android应用程序的classpath中放置正确的jar时遇到了一个问题。我把jars的图像放在我的android应用程序的libs文件夹中。我发现了很多相关的问题。但是他们都没有帮助我。这就是我再次在这里提问的原因 以下是我如何调用引用自的Web服务: 我得到的例外是: FATAL EXCEPTION: AsyncTask #1 java.lang.RuntimeExcept

我试图在我的
android应用程序中使用
spring
作为我的
springmvc REST
应用程序的客户端。我想我在android应用程序的
classpath
中放置正确的
jar
时遇到了一个问题。我把jars的图像放在我的android应用程序的libs文件夹中。我发现了很多相关的问题。但是他们都没有帮助我。这就是我再次在这里提问的原因

以下是我如何调用引用自的Web服务:

我得到的例外是:

FATAL EXCEPTION: AsyncTask #1
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:200)
at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
at java.util.concurrent.FutureTask.run(FutureTask.java:137)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
at java.lang.Thread.run(Thread.java:1096)
Caused by: java.lang.NoSuchMethodError: org.codehaus.jackson.map.ObjectMapper.getTypeFactory
at org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.getJavaType(MappingJacksonHttpMessageConverter.java:166)
at org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.canRead(MappingJacksonHttpMessageConverter.java:101)
at org.springframework.web.client.RestTemplate$AcceptHeaderRequestCallback.doWithRequest(RestTemplate.java:542)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:474)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:439)
at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:237)
at com.inovarge.shoponway.resttasks.UserRestTask.doInBackground(UserRestTask.java:30)
at com.inovarge.shoponway.resttasks.UserRestTask.doInBackground(UserRestTask.java:1)
at android.os.AsyncTask$2.call(AsyncTask.java:185)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
... 4 more

异常表示您缺少所需的Jackson依赖项。首先,我建议使用
MappingJackson2HttpMessageConverter
而不是配置的
MappingJacksonHttpMessageConverter

rest.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
接下来,
MappingJackson2HttpMessageConverter
的功能取决于库,它要求类路径上有以下文件:

  • jackson-databind-2.3.2.jar
  • jackson-annotations-2.3.2.jar
  • jackson-core-2.3.2.jar
您的
libs
文件夹中已经有
jackson-databind-2.3.2.jar
,因此您需要删除另外两个jar


最后,我强烈建议使用依赖管理系统,比如Android的Gradle插件。它将为您处理所有可传递依赖项的下载,而无需手动完成。

首先感谢您的回答,很抱歉我的回复太晚。我完全按照你说的做了,这3个罐子在我的课堂上。但我现在遇到了这个异常:由java.lang.NoSuchMethodError引起:com.fasterxml.jackson.core.JsonFactory.requirePropertyOrderingit运行良好。这是我的错误。我坚持使用错误的jackson core罐子:)太棒了!谢谢你的跟进。
rest.getMessageConverters().add(new MappingJackson2HttpMessageConverter());