启动Tomcat时报错:Unable to load configuration.

摘要:
这里我们记录了如何使用注释来实现SSH拦截器,并启动Tomcat来报告Unabletoloadconfiguration-[unknownlocation]问题的解决方案。以下是错误的详细信息:Unabletoloadconfiguration。-[未知位置]atog.apache.struts2.Dispatcher.Dispatcher。init(dispatcher.java

这里记录一下使用注解实现SSH拦截器,启动Tomcat时报Unable to load configuration. - [unknown location]错的一种解决方法。

下面是报错的详细信息:

Unable to load configuration. - [unknown location]
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:428)
at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4830)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5510)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: Unable to load configuration. - [unknown location]
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:69)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:371)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:415)
... 14 more
Caused by: Unable to find interceptor class referenced by ref-name loginCheck - [unknown location]
at com.opensymphony.xwork2.config.providers.InterceptorBuilder.constructInterceptorReference(InterceptorBuilder.java:63)
at org.apache.struts2.convention.DefaultInterceptorMapBuilder.buildInterceptorList(DefaultInterceptorMapBuilder.java:99)
at org.apache.struts2.convention.DefaultInterceptorMapBuilder.build(DefaultInterceptorMapBuilder.java:90)
at org.apache.struts2.convention.DefaultInterceptorMapBuilder.build(DefaultInterceptorMapBuilder.java:74)
at org.apache.struts2.convention.PackageBasedActionConfigBuilder.createActionConfig(PackageBasedActionConfigBuilder.java:861)
at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildConfiguration(PackageBasedActionConfigBuilder.java:651)
at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:336)
at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:215)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66)

注意,我在信息里面highlight了一段信息,“loginCheck”是我使用注解时的名字,这里的错误并不是向网上其他人所报的jar包冲突,或者“file:/D:/apache-tomcat-6.0.29/webapps/DE/WEB-INF/classes/struts.xml:10:42”之类的错误,这里的错误明显指的是找不到相关信息,查证一下,发现是少了一个重要的注解,就是@ParentPackage("restrant"),这是声明拦截器所在的包的名字。先贴一下struts.xml配置文件出来,就明白了。

<struts>
    <constant name="struts.i18n.encoding" value="utf-8"></constant>
    <package name="restrant" namespace="/" extends="struts-default">
    
       <!-- 配置拦截器AuthorityInterceptor -->
        <interceptors>
            <interceptor name="loginCheck" class="com.restrant.interceptor.AuthorityInterceptor" />
        
            <interceptor-stack name="auctionStack">  
               <interceptor-ref name="defaultStack"/>  
               <interceptor-ref name="loginCheck"/>  
           </interceptor-stack>  
        </interceptors>         
          
         <default-interceptor-ref name="auctionStack"/>   
    </package>
</struts>

配置文件里面的loginCheck拦截器是在名为“restrant”的package下面,所以在Action类里面如果要使用“loginCheck”拦截器的话,就是加上@ParentPackage("restrant")这句注解。

免责声明:文章转载自《启动Tomcat时报错:Unable to load configuration.》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Linux rpm命令vue锚点双向绑定下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

华硕路由器Asus RT-ACRH17 OpenWrt,刷openwrt教程

系统设置-启用SSH打开并使用putty登录到命令行控制台以查找ART分区,输入cat/proc/mtd查看并使用dd命令,将mtd3和mtd4复制到tmp文件夹cd/tmpddif=/dev/mtd3of=/tmp/Factory。binddif=/dev/mtd4of=/tmp/Factory2.bin使用winScp将tmp下的文件复制到计算机上,并保...

Debian忘记密码重置

我使用的系统是Debian8,但这种方法也适用于Debian7以上的系统。具体步骤是重新启动VPS。您可以使用“CTRL+ALT+DEL”按钮直接在面板或VNC上重新启动VPS,然后按图中的“e”按钮;在BIOS界面上,按“e”进入GRUB引导菜单,然后按“e”进入编辑;输入GRUB编辑红色框中的内容,并将“ro”替换为“rwinit=/bin/sh”;修改...

c++ 发送消息,模拟拖拽文件

=NULL)28{29LPSTRpszRemote=VirtualAllocEx;30if31{32::SendMessage;33bResult=TRUE;34}35}36}3738if39{40delete[]pBuf;41pBuf=NULL;42}43 returnbResult;44}在调用此函数之前,首先打开接受拖动的进程ShellExecute;...

ABB机器人功能程序(FUNC)

功能程序的应用范围非常广泛。熟练的人员可以根据不同的需求创建相应的功能程序。函数程序的固定格式是FUNC,返回结束。在ABB的学习中,许多学生对功能程序几乎一无所知,即使他们真的在使用它。在学习ABB的过程中,我遇到了几个用例,所以我总结了它们以加深我的理解。...

Elasticsearch之插件介绍及安装

3.KopfPlugin(主要)Kopf是ElasticSearch的管理工具。它还为ES集群操作提供了API。4.级别插件级别工具可以帮助用户监控ElasticSearch的运行状态。但是,此插件需要许可证。安装许可证后,您可以安装marvel的代理。代理将收集弹性搜索的运行状态。ES插件HeadPlugin的在线安装需要转到https://github....

mongodb创建用户密码

测试服务的mongodb经常被删除,因为没有设置帐户密码,相应的端口也不受限制。这是由于mongodb的默认机制。如果尚未创建用户密码,则可以创建一个用户,然后打开它。在conf中启动身份验证模式,然后重新启动mongodb以使其生效。...