升级WAS/JAVA版本后遭遇XPath相关报错
升级WAS/JAVA版本v9.0.5.16 (IBM JAVA v8.0.8.5) 后,遭遇下述报错
javax.xml.transform.TransformerException: The compiler encountered an XPath expression containing ‘105’ operators that exceeds the ‘100’ limit set.
这是由于在新的 Java 8 发行版本 (IBM JAVA v8.0.8.0及之后版本) 中对 XML 库引入了三个新的 XML 处理限制:
- jdk.xml.xpathExprGrpLimit 限制 XPath 表达式可以包含的组数,默认值为 10。
- jdk.xml.xpathExprOpLimit 限制 XPath 表达式可以包含的运算符数,默认值为 100。
- jdk.xml.xpathTotalOpLimit 限制 XSL 样式表中 XPath 运算符的总数,默认值为 10,000。
如果上述三种限制值被设置为小于或等于 0 的值,则表示没有限制。
因此,如果升级后遭遇报错
javax.xml.transform.TransformerException: The compiler encountered an XPath expression containing ‘105’ operators that exceeds the ‘100’ limit set.
则建议根据用例需要调整配置(jdk.xml.xpathExprOpLimit )以允许操作符数量设置更高的限制。
上述设置可以通过添加-D形式的jvm参数来实现,例如-Djdk.xml.xpathExprOpLimit。具体设置步骤为:
管理控制台->服务器->服务器类型->WebSphere应用服务器->选择服务器名称 ->Java和进程管理 ->进程定义->其他属性->Java虚拟机->通用JVM参数

如果增大jdk.xml.xpathExprOpLimit设置后问题依然存在,则建议检查并优化代码中使用的XPath表达式。
参考文档:
https://www.oracle.com/java/technologies/javase/8u331-relnotes.html#JDK-8270504
http://www-01.ibm.com/support/docview.wss?uid=swg21417365