Validating SOAP messages

When you use the CICS® Web services assistant to deploy your applications, you can specify that the SOAP messages should be validated at run time, to ensure that they conform to the Schema that is contained in the Web service description. You can perform validation in both provider and requester mode.

CICS uses a Java™ program to validate SOAP messages. Therefore, you must have Java support enabled in your CICS region to perform validation.
Start of changeIf the LOCALCCSID system initialization parameter specifies a value other than 037, then the JVM properties file associated with JVMProfile DFHJVMCD must contain the following:
com.ibm.cics.soap.validation.local.CCSID=ccsid
where ccsid is the value of the LOCALCCSID system initialization parameter. This value is required, even if you have specified a value for the CCSID parameter in the Web services assistant.End of change
Validation of the SOAP message takes place before it is transformed into an application data structure, and when a SOAP message is generated from the application data structure. The SOAP message is validated using the XML schema in the WSDL, before then being validated against the transformation requirements of CICS.

Start of changeWhen validation is turned off, CICS does not use the Java program. CICS validates SOAP messages only to the extent that is necessary to confirm that they contain well-formed XML, and to transform them. This means that it is possible for a SOAP message to be successfully validated against the WSDL, but then fail in the runtime environment and vice versa.End of change

Important: During development and testing of your Web service deployment, using full validation will assist in detecting problems in the message exchange between a service requester and a service provider. However, there is a substantial overhead associated with performing complete validation of the SOAP messages, and it is inadvisable to validate messages in a fully tested production application.
To have your SOAP message validated, perform the following steps:
  1. Ensure that you have a Web service description associated with your WEBSERVICE resource. This will be the case for WEBSERVICE resource definitions that were created automatically if the Web service description was present in the PIPELINE's pickup directory when the directory was scanned.

    For WEBSERVICE definitions that were created with RDO, the Web service description is specified with the WSDLFILE attribute.

  2. Turn validation on for the WEBSERVICE. Use the following CEMT or SPI command: SET WEBSERVICE(name) VALIDATION. For WEBSERVICEs that are defined with RDO you can specify whether validation is required or not in the VALIDATION attribute, but you can change this setting after the WEBSERVICE is installed with the SET WEBSERVICE command.
Start of changeCheck the system log to find out if the SOAP message is valid. Message DFHPI1002 indicates that the SOAP message was successfully validated, and message DFHPI1001 indicates that the validation failed. End of change
When you no longer need validation for the Web service, use the following command to turn it off: SET WEBSERVICE(name) NOVALIDATION.