我有一个现有的基于spring的项目(使用jaxb),它设置了javax.ws.rs rest端点,可以很好地工作(使用jersey实现)。我将这个项目移到了spring启动版本,就好像在基类中依赖@seealsh不再工作一样。
(注意最初我想在这里使用一个抽象类,它在现有的项目中工作得很好,但是在这个spring启动版本中出现了问题,所以删除它只是为了测试)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlSeeAlso({StandardSpecGenExternalInfo.class})
public class SpecGenExternalInfo extends BaseEnterpriseVO {
public SpecGenExternalInfo() {
}
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "standardSpecGenExternalInfo")
public class StandardSpecGenExternalInfo extends SpecGenExternalInfo {.. }
然后在类(specgenrequest)中发送standardspecgenexternalinfo的示例,该类以基类为arg(setexternalinfo(specgenexternalinfo)
SpecGenRequest specGenRequest = new SpecGenRequest();
StandardSpecGenExternalInfo standardExternalInfo = new StandardSpecGenExternalInfo();
specGenRequest.setExternalInfo(standardExternalInfo);
对于示例检查,以下端点将返回“false”:
@RequestMapping(value = "/postTest", consumes = MediaType.APPLICATION_XML_VALUE, produces = MediaType.APPLICATION_XML_VALUE)
public ResponseEntity<SpecGenResponse> postTest(@RequestBody SpecGenRequest request) throws Exception {
logger.info("instance of {}", request.getExternalInfo() instanceof StandardSpecGenExternalInfo);
我在pom.xml中尝试过这个,也尝试过没有
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
</dependency>
这是令人沮丧的,因为当我将这个项目设置为常规的springmvc项目并使用jersey作为端点时,它工作得很好。非常感谢您的帮助。
暂无答案!
目前还没有任何答案,快来回答吧!