2017-08-29 21 views
1

アプリケーションを使用するスプリングブート・レスト・コントローラ/ xmlデータ型を使用して作成されたレストサービスです。ネストされたxmlを送信するとき、それを解析することはできません。それは可能ですか?または私は新しい石鹸のインターフェイスを書くことに先んじる必要があります。xmlペイロード付きspringboot restコントローラ

要求ペイロード

<requestData> 
    <jvmCount>16</jvmCount> 
    <maxAttampts>345</maxAttampts> 
    <locationXpath>abd/adfd/bdc</locationXpath> 
    <requestPayload> 
      <userdetails> 
     //variabe user data with different xml structure 
      </userdetails> 
    </requestPayload> 
</requestData> 

コントローラ

@PostMapping(value = "/soap", consumes=MediaType.APPLICATION_XML_VALUE, 
    produces=MediaType.APPLICATION_XML_VALUE) 
@ResponseBody 
public ResponseEntity<?> soapServiceClient(@Valid @RequestBody RequestData requestData, Errors errors) throws InterruptedException{ 
    logger.info(" ==== soapServiceClient - started"+requestData); 
} 

RequestDataのPOJO

@XmlRootElement 
public class RequestData{ 
    private int jvmCount; 
    private String locationXpath; 
    private int maxAttampts; 
    private String requestPayload; 
} 

除きイオン

2017-08-29 18:54:41.667 WARN 13776 --- [nio-8181-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved exception caused by Handler execution: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Can not deserialize instance of java.lang.String out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String out of START_OBJECT token

+0

リクエストヘッダーはどのように見えますか?リクエスト本体のフォーマットをアプリに示すために、 "application/xml"を指定する "ContentType"が必要です。 – Matt

答えて

1

あなたのアプリはJSONだと思うので、着信XMLの解析に問題があります。 は多分、次を追加するのに役立ちます:

<groupId>com.fasterxml.jackson.dataformat</groupId> 
    <artifactId>jackson-dataformat-xml</artifactId> 
</dependency> 

あなたはこの同様の質問hereを確認することができない場合。

関連する問題