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 Quarkus CXF |
quarkus.cxf.java2ws.includes = io.quarkiverse.cxf.it.server.HelloServiceImpl,io.quarkiverse.cxf.it.server.FaultyHelloServiceImpl
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 service classes,
namely HelloServiceImpl
and FaultyHelloServiceImpl
.
Annotations
Note that the service classes must be annotated with |
The two generated WSDL documents will be stored as target/Java2wsTest/FaultyHelloServiceImpl-from-java2ws.wsdl
and target/Java2wsTest/HelloServiceImpl-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