Contact Application Web Service Beans

David Winterfeldt

2012


The WS (Web Service) Beans are used as the main model in the project, in and above the service layer. They are JAXB beans generated from XSDs. Besides always having a valid XSD to go with the XML generated, the generated Java classes have a fluent API for setting values (ex: new Person.withId(1).withFirstName("John")). They provide a way to decouple business logic and user facing APIs from a persistent store, multiple persistent stores, or 3rd party services.

1. Spring Configuration

The Spring OXM JAXB marshaller is defined, along with the packages it should manage.

META-INF/spring/marshaller/jaxb2-marshaller-context.xml
                
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
                           http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/context 
                           http://www.springframework.org/schema/context/spring-context.xsd">

    <bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
        <property name="contextPaths">
            <array>
                <value>org.springbyexample.schema.beans.entity</value>
                <value>org.springbyexample.schema.beans.person</value>
                <value>org.springbyexample.schema.beans.response</value>
            </array>
        </property>
    </bean>

</beans>