Generate WSDL document from Java
If the WSDL served by your service at http://your-host/your-service?wsdl is not enough
because you e.g. want to distribute it as a Maven artifact,
then you can use java2ws
to generate the WSDL document at build time.
You do not need to invoke the java2ws
tool provided by CXF directly,
neither you have to use the cxf-java2ws-plugin
.
quarkus-cxf
wraps java2ws
and so you can configure it in application.properties
as any other aspect of your application.
Here is an example:
The sample code snippets used in this section come from the server integration test in the source tree of CXF Extensions for Quarkus |
quarkus.cxf.java2ws.includes = io.quarkiverse.cxf.it.server.HelloService,io.quarkiverse.cxf.it.server.FaultyHelloService
quarkus.cxf.java2ws.wsdl-name-template = %TARGET_DIR%/Java2wsTest/%SIMPLE_CLASS_NAME%-from-java2ws.wsdl
Here we have instructed java2ws
to generate WSDLs for two interfaces,
namely HelloService
and FaultyHelloService
.
Note that the Service interfaces must be annotated with jakarta.xml.ws.WebService
to be selected for java2ws
processing.
The two generated WSDL documents will be stored as target/Java2wsTest/FaultyHelloService-from-java2ws.wsdl
and target/Java2wsTest/HelloService-from-java2ws.wsdl
respectively.
Unlike wsdl2java which is executed within Quarkus source generation phase,
java2ws is a part Quarkus augmentation that happens after compilation.
The input of java2ws are, after all, Java class files.
Hence you do not need to add <goal>generate-code</goal> to quarkus-maven-plugin
for java2ws .
|
See also
-
quarkus.cxf.java2ws.*
configuration properties ofquarkus-cxf