5.21. Exposing ESB Services via Web Service End-Points

5.21.1. Exposing ESB Services via Web Service End-points

When you declare your service contract schemas, the ESB service will automatically be exposed through a web service endpoint. (The contract for this web service end-point can be located through the Contract Web Application.) To modify this functionality, change the value for the 'webservice' attribute to one of the following:

Table 5.3. Web Service Attributes

Name Description
false No web service endpoint will be published.
true A web service endpoint will be published (default).

By default the webservice endpoint does not support WS-Addressing but this can be enabled through use of the 'addressing' attribute.

Table 5.4. WS-Addressing Values

Value Description
false No support for WS-Addressing (default).
true Require WS-Addressing support.

When support for addressing is enabled, the WS-Addressing Message Id, Relates To URIs and relationship types will be added as properties of the incoming messages.

Table 5.5. WS-Addressing Properties

Property Description
org.jboss.soa.esb.gateway.ebws.messageID The WS-Addressing message id.
org.jboss.soa.esb.gateway.ebws.relatesTo A String array containing the WS-Addressing RelatesTo URIs.
org.jboss.soa.esb.gateway.ebws.relationshipType A String array containing the WS-Addressing Relationship Types corresponding to the RelatesTo URIs.

The following example illustrates the declaration of a service which wishes to validate the request/response messages but without exposing the service through a webservice endpoint.
<service category="ServiceCat" name="ServiceName" description="Test Service">
    <actions mep="RequestResponse" inXsd="/request.xsd" outXsd="/response.xsd"
            webservice="false" validate="true">
        <!-- .... >
    </actions>			
</service>
The following example illustrates the declaration of a service which wishes to validate the request/response messages and expose the service through a webservice endpoint. In addition the service expects the request to be provided in the named body location 'REQUEST' and will return its response in the named body location 'RESPONSE'.
  
  <service category="ServiceCat" name="ServiceName" description="Test Service">
    <actions mep="RequestResponse" inXsd="/request.xsd" outXsd="/response.xsd"
            validate="true" requestLocation="REQUEST" responseLocation="RESPONSE">
        <!-- .... -->
    </actions>			
</service>