作者微信 bishe2022

代码功能演示视频在页面下方,请先观看;如需定制开发,联系页面右侧客服
SpringMVC 接受XML 并自动转化为java对象

Custom Tab

SpringMVC 可以接受 XML的请求并能自动转化为java对象,但是在实际的过程中通过注解来配置会配到各种奇葩错误。

1.参数不能接受

Soap ui报错信息代码  收藏代码

<html>  
   <head>  
      <meta content="HTML Tidy for Java (vers. 27 九月 2004), see www.w3.org" name="generator"/>  
      <title>Apache Tomcat/7.0.59 - Error report</title>  
      <style type="text/css">&lt;!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;
      font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 
      {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:
      Tahoma,Arial,sans-serif;color:black;background-color:white;} B 
      {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P 
      {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A 
      {color : black;}A.name {color : black;}HR {color : #525D76;}--></style>  
   </head>  
   <body>  
      <h1>HTTP Status 400 -</h1>  
      <hr noshade="noshade" size="1"/>  
      <p>  
         <b>type</b>  
         Status report  
      </p>  
      <p>  
         <b>message</b>  
      </p>  
      <p>  
         <b>description</b>  
         <u>The request sent by the client was syntactically incorrect.</u>  
      </p>  
      <hr noshade="noshade" size="1"/>  
      <h3>Apache Tomcat/7.0.59</h3>  
   </body>  
</html>

参考配置如下

@RequestMapping(value="/callback",consumes="application/xml",method = RequestMethod.POST)
public String asynCallBack(@RequestBody Person person,final HttpServletRequest request) {

consumes="application/xml" 要指定接受XML格式


   2.类的两个属性具有相同名

 

 

Tomcat后台log代码  收藏代码

.Caused by: com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions  
INFO   | jvm 1    | main    | 2017/03/23 14:41:06.711 | 类的两个属性具有相同名秿&quot;ETicketNo&quot;

解决的办法是将 @XmlElement 放在 get方法上,当然别忘了在class上加@XmlRootElement(name="yourNodeName")      

Java代码  收藏代码

@XmlElement(name="ETicketNo")  
public String getETicketNo() {  
    return ETicketNo;  
}

转载自:http://wahaha603.iteye.com/blog/2365076

Home