A LEXS 5.0 sample implementation that shows how to split metadata between the SOAP header and body.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



The lexs-ws-5.0-flex-split project provides a starting point for implementers looking to develop Java based LEXS 5.0 SOAP web service endpoints that follow the LEXS 5.0 split-metadata SSPs. It uses JAXB to generate Java object bindings and JAXWS to implement the web service.

The JAXB bindings are generated using subset of the LEXS 5.0 schemas modified to only contain the top level message elements. Unlike the official LEXS 5.0 schemas, these schemas are modified so the top level LEXS 5.0 message elements contain content placeholders(xsd:any) as their child element rather than specific LEXS 5.0 elements. This design decision provides great flexibility in the use of the Java binding objects.

The SOAP web service endpoints are generated by JAXWS using WSDL files that follow the LEXS 5.0 split-metadata SSPs. The WSDL files use the modified LEXS 5.0 schemas, mentioned above, to build the Java binding objects.

This project only provides endpoints that follow the split-metadata SSPs to demonstrate the case where LEXS metadata is split between the SOAP header and body.

The application provides skeleton code for endpoints to handle a subset of the LEXS 5.0 messages. The following table shows the LEXS 5.0 requests accepted by the application and the responses it returns.

Request Response
domainRequest domainResponse
doPublishAcknowledgedRequest doPublishAcknowledgedResponse
doStructuredSearchRequest doSearchResponse
doTextSearchRequest doSearchResponse
RenewRequest RenewResponse

The endpoints for the accepted requests will always return the same response. The goal of this implementation is to provide an example of how to generate endpoints that follow the LEXS 5.0 split SSPs, and show how to manipulate the LEXS metadata in the SOAP header. It is not meant to show how to process the incoming LEXS message. Processing of the incoming SOAP message is left as an exercise for the implementer.

Techologies Used

  • JAVA 1.8
  • JAXB 2.2.7
  • JAXWS 2.2.7
  • Maven 3


To work with Java 8 you will need to add jaxp.properties file in the <JAVA_HOME>/jre/lib directory. In that file add the following: javax.xml.accessExternalSchema = all

To Build

Use maven to build the project

mvn clean install

The target directory will contain the file lexs-ws-jaxws-service.war that you can deploy on your web application server.

How to view WSDLs on the Webserver

  • http://SERVER_NAME:8080/lexs-ws-jaxws-service/services/de?wsdl
  • http://SERVER_NAME:8080/lexs-ws-jaxws-service/services/pd?wsdl
  • http://SERVER_NAME:8080/lexs-ws-jaxws-service/services/sr?wsdl
  • http://SERVER_NAME:8080/lexs-ws-jaxws-service/services/snsm?wsdl

To Test

Deploy war file to web application server Use SoapUI project to tests /src/test/resources/LEXS-5-0-Flex-soapui-project.xml