There are two transport configuration files for HydraExpress Web services:
server-transports-template.xml for server-side processes client.
client-transports-template.xml to define transports used by the client
These files is located in the <installdir>\conf\webservices directory, and are copied to the project directory when a project is generated, at which time the word "template" is omitted from their names.
The file server-transports-template.xml defines for the server the transport objects that need to be loaded into the service container at startup. In general, a given transport is defined by both a transport element and a listener element. The listener element specifies the object that knows how to listen for incoming messages; the transport element specifies the object that knows how to send messages. The server-transports-template.xml file defines transport elements for HTTP and HTTPS. There is no need for listener elements for these transports because that functionality is inherent in the servlet that hosts the service. The file also includes commented-out, sample elements for a WebSphere MQ transport and listener. To use this transport, you must uncomment these elements and edit them to reflect the properties specific to the transport you are using. For more information on using MQ, see Chapter 14, "Transport Plugin SDKs."
The second configuration file is client-transports.xml. This file defines for the client executable the transport objects needed to send messages to a server. The file contains transport elements for HTTP, HTTPS, and WebSphere MQ. This file also contains listener elements for all transports needed for the notification and solicit-response message patterns where the client needs to listen for messages from a server.
Both of these configuration files are template files located in <installdir>\conf\webservice. These files are copied with the word "template" removed to the output directory each time the HydraExpress code generator is invoked. If you want to configure additional transports, and you want these additions to apply to all of your projects, change the files in the <installdir>\conf\webservice directory, rather than in a particular code generation directory.
Following are the entries in server-transports-template.xml for the HTTPS and WebSphere MQ transports:
<rwsf:transport name="HTTPS" uri="http://schemas.xmlsoap.org/soap/https" scheme="https" default="true" class="rwsf_webservice_transport_https.createHttpsTransport"> <rwsf:property name="connect-timeout" value="60000"/> <rwsf:property name="submit-timeout" value="60000"/> <rwsf:property name="reply-timeout" value="60000"/> <rwsf:property name="security-init-seed" value="1234567890..."/> <rwsf:property name="security-init-seed-type" value="string"/> <rwsf:property name="ssl-trusted-certificates" value=""/> </rwsf:transport> <rwsf:listener name="HTTPS" uri="http://schemas.xmlsoap.org/soap/listener/https" scheme="https" default="true" class="rwsf_webservice_transport_https.createHttpsMessageListener"> <rwsf:property name="auto-start" value="false"/> <!-- When host and port listener properties are absent, they will be auto-configured to the machine's host name and first available port. The machine will need to be configured for lookup on the network under its host name. --> <rwsf:property name="host" value="localhost" <rwsf:property name="port" value="9443"/> <rwsf:property name="request-backlog" value="5"/> <rwsf:property name="request-timeout" value="60000"/> <rwsf:property name="request-buffersize" value="4096"/> <rwsf:property name="keep-alive" value="true"/> <rwsf:property name="ssl-certificate" value="${RWSF_CONF}/certs/localhost.crt"/> <rwsf:property name="ssl-private-key" value=${RWSF_CONF}/certs/localhost.key"/> <rwsf:property name="security-init-seed" value="1234567890..."/> <rwsf:property name="security-init-seed-type" value="string"/> </rwsf:listener>
<!-- Example IBM Websphere MQ Transport Definition <rwsf:transport name="IBMMQ" uri="http://schemas.xmlsoap.org/soap/mq" scheme="ibmmq" default="true" class="rwsf_webservice_transport_ibmmq.createIBMMQTransport"> <rwsf:property name="protocol" value="mq"/> <rwsf:property name="serverQueueName" value="LEIF.MYSERVICE.QUEUE"/> <rwsf:property name="queueManager" value="QM_beaver"/> <rwsf:property name="channelDef" value="SYSTEM.DEF.SVRCONN/TCP/localhost"/> <rwsf:property name="sendSoapAction" value="true"/> </rwsf:transport> --> <!-- Example IBM Websphere MQ Listener Definition <rwsf:listener name="IBMMQ" uri="http://schemas.xmlsoap.org/soap/mq" scheme="ibmmq" default="true" class="rwsf_webservice_transport_ibmmq.createIBMMQListener"> <rwsf:property name="auto-start" value="true"/> <rwsf:property name="protocol" value="mq"/> <rwsf:property name="serverQueueName" value="LEIF.MYSERVICE.QUEUE"/> <rwsf:property name="queueManager" value="QM_beaver"/> <rwsf:property name="channelDef" value="SYSTEM.DEF.SVRCONN/TCP/localhost"/> </rwsf:listener> -->
Notes:
The name attribute is simply a label that identifies a particular transport or listener, allowing it to be selectable in the client or server at runtime.
The class attribute points to a method in a DLL that creates an object for the transport or listener with the functionality needed to send or receive messages via that transport.
The scheme value explicitly identifies the transport type. Often this could be safely derived from the uri attribute, but not necessarily.
The default attribute indicates whether a particular element is the default transport or listener for the given scheme. This is important when the generated code is determining which transport or listener to use based only on a location. The code decides which scheme to use, and then selects the default transport or listener for that scheme based on the default attributes. If more than one of the available transports or listeners has default set to true, the code takes the first one encountered.
The commented out host and port properties in the listener will result in the listeners being configured automatically, as described in Section 11.4, "Autoconfiguring Listeners."
©2004-2007 Copyright Quovadx, Inc. All Rights Reserved.
Quovadx and Rogue Wave are registered trademarks of Quovadx, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.
Contact Rogue Wave about documentation or support issues.