提交xml转object 代码 ,使用jaxb 注解。同时忽略未知字段

This commit is contained in:
zhouxiunai
2018-12-07 18:46:43 +08:00
parent 63ffe59fd4
commit 5cbeb9a36b
4 changed files with 10 additions and 11 deletions
+1 -6
View File
@@ -92,12 +92,7 @@
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId> <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency> </dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.11.0</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
@@ -18,6 +18,8 @@ import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlSchemaType; import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType; import javax.xml.bind.annotation.XmlType;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
/** /**
* <p>anonymous complex type的 Java 类。 * <p>anonymous complex type的 Java 类。
@@ -1,6 +1,7 @@
package com.gzzn.omms.msgexchangeapi.runner; package com.gzzn.omms.msgexchangeapi.runner;
import java.util.Date; import java.util.Date;
import java.util.concurrent.Executors;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@@ -39,10 +40,6 @@ public class AppRunner implements CommandLineRunner {
logger.info("发送获取动态航班日计划的消息完成"); logger.info("发送获取动态航班日计划的消息完成");
Executors.newFixedThreadPool(1).execute(new SchdWaitRunner());
//启动线程等待日航班计划消息返回
Thread t = new Thread(new SchdWaitRunner());
t.run();
}//end function run }//end function run
} }
@@ -7,9 +7,12 @@ import org.springframework.stereotype.Service;
import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.type.TypeFactory;
import com.fasterxml.jackson.dataformat.xml.XmlMapper; import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector;
import com.gzzn.omms.msgexchangeapi.exception.ExchangeServiceException; import com.gzzn.omms.msgexchangeapi.exception.ExchangeServiceException;
@Service("exchangeService") @Service("exchangeService")
@@ -35,6 +38,8 @@ public class ExchangeServiceImpl implements IExchangeService {
public <T> T xmlstrToObject(String xml,Class<T> valueType) throws ExchangeServiceException { public <T> T xmlstrToObject(String xml,Class<T> valueType) throws ExchangeServiceException {
try { try {
ObjectMapper xmlMapper = new XmlMapper(); ObjectMapper xmlMapper = new XmlMapper();
xmlMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
xmlMapper.setAnnotationIntrospector(new JaxbAnnotationIntrospector(TypeFactory.defaultInstance()));
return xmlMapper.readValue(xml,valueType); return xmlMapper.readValue(xml,valueType);
} catch (JsonParseException e) { } catch (JsonParseException e) {
throw new ExchangeServiceException(e.getMessage(),e); throw new ExchangeServiceException(e.getMessage(),e);