Eclipse配置Struts 2报错

董小虫 2016-05-05 09:23:34
错误报告如下:
ERROR org.apache.struts2.dispatcher.Dispatcher - Dispatcher initialization failed
com.opensymphony.xwork2.config.ConfigurationException: Unable to load configuration.
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:70) ~[xwork-core-2.3.28.1.jar:2.3.28.1]
at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:970) ~[struts2-core-2.3.28.1.jar:2.3.28.1]
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:438) ~[struts2-core-2.3.28.1.jar:2.3.28.1]
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:482) [struts2-core-2.3.28.1.jar:2.3.28.1]
at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74) [struts2-core-2.3.28.1.jar:2.3.28.1]
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57) [struts2-core-2.3.28.1.jar:2.3.28.1]
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279) [catalina.jar:8.0.26]
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260) [catalina.jar:8.0.26]
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105) [catalina.jar:8.0.26]
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4574) [catalina.jar:8.0.26]
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5193) [catalina.jar:8.0.26]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [catalina.jar:8.0.26]
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408) [catalina.jar:8.0.26]
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398) [catalina.jar:8.0.26]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_60]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_60]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_60]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_60]
Caused by: com.opensymphony.xwork2.config.ConfigurationException: Action class [dong.LoginAction] not found
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyAction(XmlConfigurationProvider.java:486) ~[xwork-core-2.3.28.1.jar:2.3.28.1]
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:429) ~[xwork-core-2.3.28.1.jar:2.3.28.1]
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:556) ~[xwork-core-2.3.28.1.jar:2.3.28.1]
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:295) ~[xwork-core-2.3.28.1.jar:2.3.28.1]
at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:112) ~[struts2-core-2.3.28.1.jar:2.3.28.1]
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:264) ~[xwork-core-2.3.28.1.jar:2.3.28.1]
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67) ~[xwork-core-2.3.28.1.jar:2.3.28.1]
... 17 more
五月 05, 2016 9:10:41 下午 org.apache.catalina.core.StandardContext filterStart
严重: Exception starting filter struts2
Unable to load configuration. - action - file:/D:/AllPrograms/JavaEE/Eclipse/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/ActionContext/WEB-INF/classes/struts.xml:9:50
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:496)
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: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:4574)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5193)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: Unable to load configuration. - action - file:/D:/AllPrograms/JavaEE/Eclipse/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/ActionContext/WEB-INF/classes/struts.xml:9:50
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:70)
at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:970)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:438)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:482)
... 14 more
Caused by: Action class [dong.LoginAction] not found - action - file:/D:/AllPrograms/JavaEE/Eclipse/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/ActionContext/WEB-INF/classes/struts.xml:9:50
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyAction(XmlConfigurationProvider.java:486)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:429)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:556)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:295)
at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:112)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:264)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
... 17 more

项目结构如图:


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>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<package name="dong" extends="struts-default" >
<action name="login" class="dong.LoginAction" >
<result name="error">/WEB-INF/content/error.jsp</result>
<result name="success">/WEB-INF/content/welcom.jsp</result>
</action>
<action name="*" >
<result>/WEB-INF/content/{1}.jsp</result>
</action>
</package>
</struts>


web.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1" >
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
...全文
167 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 11 楼 dongzhong1990 的回复:
[quote=引用 10 楼 qnmdcsdn 的回复:] [quote=引用 9 楼 dongzhong1990 的回复:] [quote=引用 8 楼 qq_34859534 的回复:] 重新编译一下,然后你继承 actionsupport这个类再试试
继承ActionSupport可以正常运行,但是实现Action接口却不行[/quote] 我记得实现这个接口需要实现很多方法的,没有提示你实现吗?[/quote] 没有提示编译错误,但是没有生成class文件。[/quote] 我测了一下没发现你的这种情况,你在检查一下看看
董小虫 2016-05-06
  • 打赏
  • 举报
回复
引用 1 楼 Q80470101 的回复:
你需要在spring的容器里装配dong.LoginAction这些bean <action name="login" class="dong.LoginAction" > 这里的class并不是说写上类名,他就会去读取。这里只是个classid,他会去spring中查找这个classid。 详情百度一下 “struts2与spring整合” 相关资料。
对了,我的项目当中居然没有生成LoginAction.class文件,不知道为什么
董小虫 2016-05-06
  • 打赏
  • 举报
回复
引用 4 楼 fjd210816 的回复:
Action class [dong.LoginAction] not found - action 提示没有找到这个action的类 <package name="dong" extends="struts-default" > 建议 package 添加一个 namespace=“/”
添加了以后还是报错。 对了对了,LoginAction.java对应生成的class文件居然没有,不知道怎么回事,一直没有生成.class文件
董小虫 2016-05-06
  • 打赏
  • 举报
回复
引用 3 楼 Q80470101 的回复:
[quote=引用 2 楼 dongzhong1990 的回复:] [quote=引用 1 楼 Q80470101 的回复:] 你需要在spring的容器里装配dong.LoginAction这些bean <action name="login" class="dong.LoginAction" > 这里的class并不是说写上类名,他就会去读取。这里只是个classid,他会去spring中查找这个classid。 详情百度一下 “struts2与spring整合” 相关资料。
可是我的项目中并没有用到spring。而且我的那些步骤都是按照教程上一步步来的,而且之前的一个项目是可以正常运行的。可是现在的这个怎么都不行,重新建一个项目都不管用[/quote] 哦,没用spring,不好意思是我疏忽了。你打开dong.LoginAction看看,有没有继承对应的类。[/quote]
package dong;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;

public class LoginAction implements Action
{
	private String username;
	private String password;
	
	public String getUsername()
	{
		return this.username;
	}
	public String getPassword()
	{
		return this.password;
	}
	public void setUsername(String username)
	{
		this.username = username;
	}
	public void setPassword(String password)
	{
		this.password = password;
	}
	
	public String execute() throws Exception
	{
		ActionContext ctx = ActionContext.getContext();
		Integer counter = (Integer) ctx.getApplication().get("counter");
		if (counter == null)
		{
			counter = 1;
		}
		else
		{
			counter = counter + 1;
		}
		ctx.getApplication().put("counter", counter);
		ctx.getSession().put("user", getUsername());
		if (getUsername() == null || getPassword() == null)
		{
			ctx.put("tip", "服务器提示:登录失败");
			return ERROR;
		}
		if (getUsername().equals("dongzhong") && getPassword().equals("dongzhong1990")) 
		{
			ctx.put("tip", "服务器提示:登录成功");
			return SUCCESS;
		}
		
		ctx.put("tip", "服务器提示:登录失败");
		return ERROR;
	}
}
这是我的dong.LoginAction,是直接实现Action接口的。
约定终点 2016-05-06
  • 打赏
  • 举报
回复
Action class [dong.LoginAction] not found - action 提示没有找到这个action的类 <package name="dong" extends="struts-default" > 建议 package 添加一个 namespace=“/”
家里敷泥呀 2016-05-06
  • 打赏
  • 举报
回复
引用 2 楼 dongzhong1990 的回复:
[quote=引用 1 楼 Q80470101 的回复:] 你需要在spring的容器里装配dong.LoginAction这些bean <action name="login" class="dong.LoginAction" > 这里的class并不是说写上类名,他就会去读取。这里只是个classid,他会去spring中查找这个classid。 详情百度一下 “struts2与spring整合” 相关资料。
可是我的项目中并没有用到spring。而且我的那些步骤都是按照教程上一步步来的,而且之前的一个项目是可以正常运行的。可是现在的这个怎么都不行,重新建一个项目都不管用[/quote] 哦,没用spring,不好意思是我疏忽了。你打开dong.LoginAction看看,有没有继承对应的类。
董小虫 2016-05-06
  • 打赏
  • 举报
回复
引用 1 楼 Q80470101 的回复:
你需要在spring的容器里装配dong.LoginAction这些bean <action name="login" class="dong.LoginAction" > 这里的class并不是说写上类名,他就会去读取。这里只是个classid,他会去spring中查找这个classid。 详情百度一下 “struts2与spring整合” 相关资料。
可是我的项目中并没有用到spring。而且我的那些步骤都是按照教程上一步步来的,而且之前的一个项目是可以正常运行的。可是现在的这个怎么都不行,重新建一个项目都不管用
家里敷泥呀 2016-05-06
  • 打赏
  • 举报
回复
你需要在spring的容器里装配dong.LoginAction这些bean <action name="login" class="dong.LoginAction" > 这里的class并不是说写上类名,他就会去读取。这里只是个classid,他会去spring中查找这个classid。 详情百度一下 “struts2与spring整合” 相关资料。
董小虫 2016-05-06
  • 打赏
  • 举报
回复
引用 10 楼 qnmdcsdn 的回复:
[quote=引用 9 楼 dongzhong1990 的回复:] [quote=引用 8 楼 qq_34859534 的回复:] 重新编译一下,然后你继承 actionsupport这个类再试试
继承ActionSupport可以正常运行,但是实现Action接口却不行[/quote] 我记得实现这个接口需要实现很多方法的,没有提示你实现吗?[/quote] 没有提示编译错误,但是没有生成class文件。
  • 打赏
  • 举报
回复
引用 9 楼 dongzhong1990 的回复:
[quote=引用 8 楼 qq_34859534 的回复:] 重新编译一下,然后你继承 actionsupport这个类再试试
继承ActionSupport可以正常运行,但是实现Action接口却不行[/quote] 我记得实现这个接口需要实现很多方法的,没有提示你实现吗?
董小虫 2016-05-06
  • 打赏
  • 举报
回复
引用 8 楼 qq_34859534 的回复:
重新编译一下,然后你继承 actionsupport这个类再试试
继承ActionSupport可以正常运行,但是实现Action接口却不行
qq_34859534 2016-05-06
  • 打赏
  • 举报
回复
重新编译一下,然后你继承 actionsupport这个类再试试

67,514

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧