spring mvc と rest を使用してクライアント サーバー アプリケーションを開発しています。クライアントがサーバーからメソッドを呼び出して操作を実行する単純な電卓サービス。
これは私の残りのクライアントコードrestClient.javaです:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.blog.samples.client;
/**
*
* @author bhushan.baviskar
*/
import com.blog.samples.domain.Calculator;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.web.client.RestTemplate;
public class restClient {
public static void main(String [] args)
{
restClient tmp = new restClient();
tmp.calltoserver();
}
public void calltoserver() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("../../../../appContext.xml", restClient.class);
RestTemplate restTemplate = applicationContext.getBean("restTemplate", RestTemplate.class);
String url = "http://localhost:8080/rest/calc/4&3&+";
Calculator calObj = (Calculator) restTemplate.getForObject(url, Calculator.class);
System.out.println("details " + calObj.getDetails());
System.out.println("done");
}
}
そして、これは私の appContext.xml ファイルです:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
<property name="messageConverters">
<bean id="messageConverter" class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter">
<property name="marshaller" ref="xstreamMarshaller" />
<property name="unmarshaller" ref="xstreamMarshaller" />
</bean>
</property>
</bean>
<bean id="xstreamMarshaller" class="org.springframework.oxm.xstream.XStreamMarshaller">
<property name="aliases">
<props>
<prop key="Calculator">com.blog.samples.webservices.rest.CalcController</prop>
</props>
</property>
</bean>
</beans>
json 形式で応答を取得していますが、restclient.java ファイルを実行すると、次のように表示されます。
DEBUG: [Dec-11 16:54:39,706] web.client.RestTemplate - GET request for "http://localhost:8080/rest/calc/4&3&+" resulted in 200 (OK)
Exception in thread "main" org.springframework.web.client.RestClientException: **Could not extract response: no suitable HttpMessageConverter found for response type** [com.blog.samples.domain.Calculator] and content type [text/plain;charset=UTF-8]
at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:84)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:446)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:401)
at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:199)
at com.blog.samples.client.restClient.calltoserver(restClient.java:27)
at com.blog.samples.client.restClient.main(restClient.java:21)
------------------------------------------------------------------------
私はSpring Restクライアント開発に慣れていないので、助けていただければ幸いです。
誰かがplを知っていれば。応答を処理する方法を教えてください。