我有自定义异常:
@WebFault(targetNamespace = "http://somenamespace/server/faults")
public class SoapBadRequestException extends Exception {
private static final long serialVersionUID = 1L;
private FaultBean faultBean;
public static class FaultBean {}
public SoapBadRequestException() { super(); }
public SoapBadRequestException(String message, FaultBean faultBean, Throwable cause) {
super(message, cause);
this.faultBean = faultBean;
}
public SoapBadRequestException(String message, FaultBean faultBean) {
super(message);
this.faultBean = faultBean;
}
public FaultBean getFaultInfo() { return faultBean; }
@Override
@XmlTransient
public StackTraceElement[] getStackTrace() { return super.getStackTrace(); }
@XmlTransient
@Override
public Throwable getCause() { return super.getCause(); }
}
我有插件配置:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<id>schemagen-fault</id>
<goals>
<goal>schemagen</goal>
</goals>
</execution>
</executions>
<configuration>
<transformSchemas>
<transformSchema>
<uri>http://somenamespace/server/faults</uri>
<toPrefix>faults</toPrefix>
<toFile>faults_schema.xsd</toFile>
</transformSchema>
</transformSchemas>
<sources>
<source>
src/main/java/blabla/SoapBadRequestException.java
</source>
</sources>
</configuration>
</plugin>
我收到以下错误:
java.lang.StackTraceElement is a non-static inner class, and JAXB can't handle those.
this problem is related to the following location:
at java.lang.StackTraceElement (Unknown Source)
at java.lang.Throwable.getStackTrace (Unknown Source)
at java.lang.Throwable (Unknown Source)
at java.lang.Exception (Unknown Source)
at java.lang.RuntimeException (Unknown Source)
at blabla.SoapBadRequestException(src/main/java/blabla/SoapBadRequestException.java:12)
正如您所看到的,重写无济于事。 我尝试了来自here的建议,并且长期以来一直在努力,但没有任何帮助。