在jetty服务器上部署war文件时,会发生NoSuchFieldError:
在com.xxx.ws.wscommon_v22.ClientContextType.toString(ClientContextType.java:382)
重建war文件可能会解决问题,但并非总是如此。
违规代码行来自apache xjc生成的文件:
@Override
@Generated(value = "com.sun.tools.xjc.Driver", date = "2018-02-28T10:32:27+01:00", comments = "JAXB RI v2.2.11")
public String toString() {
return ToStringBuilder.reflectionToString(this, JAXBToStringStyle.DEFAULT_STYLE);
}
在战争中只有一个JAXBToStringStyle实例,它来自:
<groupId>org.apache.cxf.xjc-utils</groupId>
<artifactId>cxf-xjc-runtime</artifactId>
<version>3.2.0</version>
其他cxf库是版本3.2.1,但cxf-xjc-ts除外,它是3.1。
错误表明版本存在冲突,但我似乎无法弄清楚原因。