简体   繁体   中英

Generating Java Exceptions from XSD / binding Exceptions with JAXB2

For webservices we usually generate java beans with the maven-jaxb2-plugin and use JAXB2 marshalling in Spring. I am wondering how to handle (SOAP-)faults that are declared in the WSDL/XSD best. In the application I would like to use Java exceptions that are marshalled to the faults. Is this possible? I haven't found a way to generate exceptions with the sourcecode generation of the maven-jaxb2-plugin. Thanks!

Update: I'd like to use spring-ws. But I guess the main problem is how to generate java exceptions with jaxb2 source generator.

XFire (now CXF) lets you bind SOAP excpetions declared in the WSDL to particular Java exception as described here . These Java exceptions are hand created through, not generated via JAXB. I don't know if there's an equivalent in Spring-WS.

Jaxb2-plugin generates beans from XSD only. You can use jaxws-maven-plugin instad of maven-jaxb2-plugin .

Try using this:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jaxws-maven-plugin</artifactId>
    <executions>
        <execution>
            <id>generate-from-wsdl<
            <goals>
                <goal>wsimport</
            </goals>
        </execution>
    </executions>

    <configuration>
        <wsdlDirectory>src/main/resources/wsdl/</wsdlDirectory>
        <keep>true</keep>
        <sourceDestDir>target/generated-sources/wsimport</sourceDestDir>
    </configuration>
</plugin>

Just simply invoke command mvn clean install , you'll find generated resources in target/generated-sources/wsimport on two packages:

  • types -generated java beans same as from jaxb
  • wsdl -classes, exceptions, interfaces generated from wsdl

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM