1

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を知っていれば。応答を処理する方法を教えてください。

4

1 に答える 1