The <cics_soap_1.2_handler_java> pipeline configuration element
Deprecated feature: Support for the JVMSERVER-based
configuration option for the web services data transformation service is deprecated. The deprecated
options can be replaced with the use of a non-Java pipeline
for CICS®
web services, z/OS Connect Enterprise Edition, or by writing
web applications in Java
or Node.js. For more details, see Stabilization notices.
Specifies the attributes of the handler program for SOAP 1.2 messages in Java™-based SOAP pipelines.
Used in:
- Service requester
- Service provider
Contained by:
<service_handler_list>element<terminal_handler>element
Contains:
- A
<jvmserver>element. - An optional
<repository>element. - An optional
<addressing>element. If you enable support for Web Services Addressing in Axis2, do not use header processing programs. You can write Axis2 handlers in Java to process the SOAP headers. - Zero, one, or more
<headerprogram>elements. Each<headerprogram>element contains:- A
<program_name>element, containing the name of a header processing program - A
<namespace>element, which is used with the following<localname>element to determine which header blocks in a SOAP message should be processed by the header processing program. The<namespace>element contains the URI (Uniform Resource Identifier) of the header block's namespace. - A
<localname>element, which is used with the preceding<namespace>element to determine which header blocks in a SOAP message should be processed by the header processing program. The<localname>contains the element name of the header block.For example, consider this header block:
The namespace name is<t:myheaderblock xmlns:t="http://mynamespace" ...> .... </t:myheaderblock>http://mynamespaceand the element name ismyheaderblockTo make a header program match this header block, code the<namespace>and<localname>elements like this:<namespace>http://mynamespace</namespace> <localname>myheaderblock</localname>You can code an asterisk (*) in the<localname>element to indicate that all header blocks in the namespace whose names begin with a given character string should be processed. For example:
When you use the asterisk in the<namespace>http://mynamespace</namespace> <localname>myhead*</localname><localname>element, a header in a message can match more than one<headerprogram>element. For example, this header block:
matches all the following<t:myheaderblock xmlns:t="http://mynamespace" ...> .... </myheaderblock><headerprogram>elements:
When this is the case, the header program that runs is the one specified in the<headerprogram> <program_name>HDRPROG1</program_name> <namespace>http://mynamespace</namespace> <localname>*</localname> <mandatory>false</mandatory> </headerprogram> <headerprogram> <program_name>HDRPROG2</program_name> <namespace>http://mynamespace</namespace> <localname>myhead*</localname> <mandatory>false</mandatory> </headerprogram> <headerprogram> <program_name>HDRPROG3</program_name> <namespace>http://mynamespace</namespace> <localname>myheaderblock</localname> <mandatory>false</mandatory> </headerprogram><headerprogram>element in which the element name of the header block is most precisely stated. In the example, that is HDRPROG3.When the SOAP message contains more than one header, the header processing program is invoked once for each matching header, but the sequence in which the headers are processed is undefined.
If you code two or more
<headerprogram>elements that contain the same<namespace>and<localname>elements, but that specify different header programs, only one of the header programs will run, but which of the programs will run is not defined. - A
<mandatory>element, containing an XML boolean value (trueorfalse). Alternatively, you can code the values as1or0respectively.true- During service request processing in a service provider pipeline, and service response
processing in a service requester pipeline, the header processing program is to be invoked at least
once, even if none of the headers in the SOAP messages matches the
<namespace>and<localname>elements:- If none of the headers matches, the header processing program is invoked once.
- If any of the headers match, the header processing program is invoked once for each matching header.
false- The header processing program is to be invoked only if one or more of the headers in the SOAP
messages matches the
<namespace>and<localname>elements:- If none of the headers matches, the header processing program is not invoked.
- If any of the headers match, the header processing program is invoked once for each matching header.
- A
If any of the configuration elements are used, they must be used in the sequential order that they are listed.
Example
The following example shows the XML for the Java-based SOAP handler and its nested elements:
<cics_soap_1.2_handler_java>
<jvmserver>JVMSERV1</jvmserver>
<headerprogram>
<program_name>HDRPROG4</program_name>
<namespace>http://mynamespace</namespace>
<localname>myheaderblock</localname>
<mandatory>true</mandatory>
</headerprogram>
</cics_soap_1.2_handler_java>