网上找了很多是将antrl配置到weblogic的CLASSPATH里解决,我修改后还是报相同的错,找了很久发现是因为我的weblogic拥有多个server,冲突的话还是使用原先的解析方式,后来发现官方有解决方案。
官方的解决办法是在web-inf下创建一个weblogic.xml,配置
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
<session-descriptor>
<session-param>
<param-name>CookiePath</param-name>
<param-value>/oams</param-value>
</session-param>
</session-descriptor>
<context-root>/</context-root>
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
</weblogic-web-app>
让weblogic在冲突情况下,默认采用web应用下的lib,而不采用它本身classpath下的jar包即可.
这个解决方案感觉最理想。