This study is divided into two main projects, namely the HttpMonitor
project and the
SecurityPriceService
project. The latter one contains the actual web service (and test client) whereas the former one
provides support to monitor and to debug web services if necessary. The SecurityPriceService
project
is further divided into three sub-projects. The SecurityPriceService-jar
sub-project contains the
WSDL interface definition of the service as well as the Java endpoint interface and the
JAXB value classes resulting from it.
The two other sub-projects SecurityPriceService-server
and
SecurityPriceService-client
are representing the server or rather the client side of the web service and are
dependent on the SecurityPriceService-jar
.
The most interesting build definition out of the POMs
of these (sub-)projects is probably the pom.xml of
SecurityPriceService-jar
. Since we are applying a contract-first approach we need not to code
the endpoint interface and the value classes by ourselves, but we are using a tool which generates the required artifacts for us.
The maven-jaxws-tools-plugin
from RedHat provides the goal wsconsume
which binds to the generate-sources phase within the build lifecycle. This goal consumes our WSDL interface definition and produces
the required endpoint interface and value classes. The maven-jaxws-tools-plugin
depends on the
jbossws-cxf-client
which for its part depends on some artifacts which haven't been published to
the Central Repository yet. Hence we need to reference the JBoss Repository within the build definition. See
JAX-WS Tools of the WildFly documentation for further usage information.
Note, however, that I have provided an alternative pom.xml for SecurityPriceService-jar
which uses the JAX-WS Maven Plugin provided by the
JAX-WS commons project which aims to collect useful utilities around
the JAX-WS reference implementation. Both POMs can be used interchangeably and produce equivalent code which can deployed on both
WildFly 10.1.0 and GlassFish 4.1
since we are applying only standard JAX-WS constructs.