解决struts2 在weblogic服务器下部署遇到 <Could not load use r defined filter in web.xml: org.apache.struts2.dispatcher.FilterDispatcher. Una

项目采用strtus2+spring+hibernate的架构,在tomcat下部署没有问题,转到weblogic下启动报错,错误如下:

 

 

<2011-6-15 下午01时21分23秒 CST> <Error> <HTTP> <BEA-101165> <Could not load use

r defined filter in web.xml: org.apache.struts2.dispatcher.FilterDispatcher.

Unable to load configuration. - [unknown location]

        at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(

ConfigurationManager.java:58)

        at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Di

spatcher.java:371)

        at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:424)

        at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.

java:213)

        at weblogic.servlet.internal.FilterManager$FilterInitAction.run(FilterMa

nager.java:332)

        Truncated. see log file for complete stacktrace

Error loading configuration file struts.xml - [unknown location]

        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loa

dDocuments(XmlConfigurationProvider.java:165)

        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.ini

t(XmlConfigurationProvider.java:130)

        at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContai

ner(DefaultConfiguration.java:155)

        at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(

ConfigurationManager.java:55)

        at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Di

spatcher.java:371)

        Truncated. see log file for complete stacktrace

unable to attain an URLClassLoader - [unknown location]

        at com.opensymphony.xwork2.util.ClassPathFinder.findMatches(ClassPathFin

der.java:80)

        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loa

dConfigurationFiles(XmlConfigurationProvider.java:908)

        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loa

dDocuments(XmlConfigurationProvider.java:161)

        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.ini

t(XmlConfigurationProvider.java:130)

        at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContai

ner(DefaultConfiguration.java:155)

        Truncated. see log file for complete stacktrace

>

 

 

解决方法:

在struts的配置文件struts.xml中不可以使用通配符*,将所有的xml使用决对路径include进来就可以了。例如:

<include file="com/maggie/admin/struts-admin.xml" />

 

造成的原因如下:

xwork的ClassPathFinder.findMatches方法里取得当前classloader的方式是

ClassLoader loader = Thread.currentThread().getContextClassLoader();
在tomcat环境下取到的是URLClassloader的实例

,而在weblogic下面却是weblogic.utils.classloaders.ChangeAwareClassLoader ,

weblogic有自己的classLoader机制,因此导致了错误。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值