weblogic10.3加载status2报错 unable to attain an URLClassLoader - [unknown location]

tomcat应用容器换weblogic应用容器遇到的坑:

Caused by: Error loading configuration file struts.xml - [unknown location]
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadDocuments(XmlConfigurationProvider.java:147)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.init(XmlConfigurationProvider.java:110)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:168)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
... 42 more
Caused by: unable to attain an URLClassLoader - [unknown location]
at com.opensymphony.xwork2.util.ClassPathFinder.findMatches(ClassPathFinder.java:80)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(XmlConfigurationProvider.java:940)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadDocuments(XmlConfigurationProvider.java:143)

原因是struts.xml配置文件include里面的通配符*
有多少个文件就include多少个文件,不要采用通配符。
因为我跟踪了一下代码,发现报这个错误在于xwork的ClassPathFinder.findMatches方法里取得当前classloader的方式是ClassLoader loader = Thread.currentThread().getContextClassLoader();
在tomcat环境下取到的是URLClassloader的实例,而在weblogic下面却是weblogic.utils.classloaders.ChangeAwareClassLoader ,weblogic有自己的classLoader机制,因此导致了错误。

我觉得解决此类问题除非weblogic自身去解决,比如继承URLClassLoader等。
如果你自己尝试解决,即使解决了,可能也会出现这样那样的问题。因此,还是按照最普通的方式,老老实实的将所有的文件都一个一个include进来吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QC班长

班长有话说:要是有瓶水喝就好了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值