【java-bug】Exception starting filter [struts2] Unable to load configuration.

出现这个问题一般是struts.xml配置文件没有配置好,之前由于我把class属性值写成了包名的路径,导致出错了,应该是class的完整路径名。

错误:配置文件的第八行class属性路径没有写到类名,只写到了包名

四月 13, 2018 11:20:39 下午 org.apache.catalina.core.StandardContext filterStart
严重: Exception starting filter [struts2]
Unable to load configuration. - action - file:/D:/practice/java/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/studyStruts2/WEB-INF/classes/cn/itheima/api/struts.xml:8:70
	at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:493)
	at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57)
	at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:283)

struts.xml正确的配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
	<!-- 常量配置 
		i18N:国际化 解决post提交乱码
	-->
	<constant name="struts.i18n.encoding" value="UTF-8"></constant>
	<!-- 
		指定访问action时的后缀名。默认为action或者.action后缀
		例如:http://localhost:8080/studyStruts2/hello/HelloAction.do
	 -->
	<constant name="struts.action.extension" value="action,,"></constant>
	<!-- 
		指定struts2是否以开发模式运行
			1.可以热加载主配置 不需要配置重启即可生效
			2.提供更多错误信息输出 方便开发时的调试
	 -->
	<constant name="struts.devMode" value="true"></constant>
	
	
	
	<!-- package:并不对应java源码的包 是将Action配置封装,就是可以在Package中配置很多action 
			name:包名,标识作用,不重复
			namespace:给action的访问路径中定义一个命名空间
			extends:继承另一个包或指定包(必须要继承这个包)
			abstract:包是否为抽象的;标识性属性标识该包不能独立运行,专门被继承		
	-->
	<package name="hello" namespace="/hello" extends="struts-default">
		<!-- action:配置action类
			name:决定了Action访问资源名
			class:action的完整类名
			method:指定调用action中的哪个方法来处理请求
		 -->
		<action name="HelloAction" class="cn.itheima.test.HelloAction" method="hello">
			<!-- result:结果配置
				name:标识结果处理的名称与action方法的返回值对应
				type:指定调用哪一个result类来处理结果,默认使用转发dispatcher
				标签体:填写转发页面的相对路径
			 -->
			<result name="success" type="dispatcher">/hello.jsp</result>
		</action>
	</package>
	<package name="showvs" namespace="/" extends="struts-default">
		<action name="DemoAction1" class="cn.itheima.ognl.DemoAction1" method="execute">
			<result name="success" type="dispatcher">/showvs.jsp</result>
		</action>
	</package>
	<package name="result" namespace="/" extends="struts-default">
		<!--转发-->
		<action name="Demo1Action" class="cn.itheima.test2.Demo1Action" method="execute">
			<result name="success" type="dispatcher">/hello.jsp</result>
		</action>
		
		<!--重定向-->
		<action name="Demo2Action" class="cn.itheima.test2.Demo2Action" method="execute">
			<result name="success" type="redirect">/hello.jsp</result>
		</action>
		
		<!--转发到Action-->
		<action name="Demo3Action" class="cn.itheima.test2.Demo3Action" method="execute">
			<result name="success" type="chain">
				<param name="actionName">Demo1Action</param>
				<param name="namespace">/</param>
			</result>
		</action>
		
		<!--重定向到Action-->
		<!-- <action name="Demo4Action" class="cn.itheima.test2.Demo4Action" method="execute">
			<result name="success" type="redirectAction">
				<param name="actionName">Demo1Action</param>action名称
				<param name="namespace">/</param>action所在的命名空间
			</result>
		</action> -->
	</package>
	
	
	<!-- 引入其他struts配置文件 -->
	<include file="cn/itheima/test/struts.xml"></include>
	<include file="cn/itheima/api/struts.xml"></include>
	<include file="cn/itheima/param/struts.xml"></include>
</struts>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

阿来小同学

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值