3.7.4 Notes on the Parser Switching functionality
- Organization of this subsection
(1) XML implementation for the container extension library
If you specify a class path for an XML implementation other than XML Processor in usrconf.cfg, the start processing of Application Server or operations of the components are affected, hence, you cannot specify the XML implementation in the container extension library.
For details on the container extension library, see 16. Container Extension Library in the uCosminexus Application Server Common Container Functionality Guide.
(2) Notes on using the Application Server functionality
The functionality provided with Application Server includes functionality that requires XML Processor operations. Note that the functionality described in the following table might not operate normally if used concurrently with the Parser Switching functionality in the same application.
API type |
Application Server functionality that does not support the switching of XML implementation |
---|---|
JAXP API |
|
StAX API |
|
JAXB API |
|
As a roundabout, consider dividing the components that require the user-specified XML implementation and the components that require the Application Server functionality into separate applications.
Also, on the J2EE servers that operate Service Coordinator, operate the applications that require the user-specified XML implementation on a J2EE server different than the user-specified XML implementation with Service Coordinator.
(3) Versions of XML implementation to be switched
Switching the XML implementation with the Parser Switching functionality does not switch APIs. Therefore, you cannot change the API version from the one supported by Application Server.
For example, if you switch the XML implementation conforming to a version different from one supported by Application Server, JAXP1.4/StAX1.0/JAXB2.2 supported by XML Processor 09-50 are used and the APIs added to the new version cannot be used for development and execution. Also, take precautions when you switch to an XML implementation of a different version because the operations might be affected by changes in the specifications and errors or exceptions might occur when the APIs are used.
(4) Switching the XML implementation class
JAXP1.4 and JAXB2.2 provide the mechanism for switching the implementation classes. The Parser Switching functionality cannot be used to override implementation class switchover that has already been made in any of the following ways:
-
Specifying a factory class by using a system property
-
Specifying a JAXP factory class in jaxp.properties
-
Specifying a StAX factory class in stax.properties
-
Specifying a JAXB factory class in jaxb.properties
For example, with JAXB1, which requires implementation classes to be specified in jaxb.properties, the Parser Switching functionality cannot be used to switch implementation classes.
(5) Notes on using the local call optimization functionality of Component Container
When an XML implementation is included with a J2EE application and if all is specified in the optimization scope for the local call optimization functionality of Component Container (ejbserver.rmi.localinvocation.scope=all), the XML implementation of all the applications running on the same J2EE server switches. The EJB-JARs and library JARs of J2EE applications are loaded using the same class loader, so the classes with the same name are shared between the J2EE applications. If there are classes with the same names but different contents, according to the Java specifications, note that only the class loaded first is enabled.
For details on the local call optimization functionality, see Appendix B.2 Class loader configuration for local call optimization in the uCosminexus Application Server Common Container Functionality Guide.
(6) Switching the XML implementation of the client-operated Java applications
With Java applications, the XML implementation is switched by specifying the system properties in the user property file for Java applications, so the Parser Switching functionality is not supported.
For details on the user property file for Java applications, see 12.2.2 usrconf.properties (User property file for Java applications) in the uCosminexus Application Server Definition Reference Guide.