配置struts2环境 找不到action

zq2022 2009-12-02 03:21:15
struts.xml配置内容:
<struts>
<package name="struts2" namespace="/" extends="struts-default">
<action name="login" class="cn.itcast.struts2.action.LoginAction" method="execute">
<result name="success">/WEB-INF/pages/success.jsp</result>
<result name="errors">/WEB-INF/pages/errors.jsp</result>
</action>
</package>
</struts>

web.xml配置内容:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<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>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

</web-app>

LoginAciton.java
package cn.itcast.struts2.action;

public class LoginAction {
private String username;
private String password;

public String getUsername(){
return username;
}
public String getPassword(){
return password;
}

public void setUsername(String username){
this.username = username;

}

public void setPassword(String password){
this.password = password;
}

//处理用户请求的execute方法
public String execute()throws Exception{
if(getUsername().equals("scott")&&
getPassword().equals("tiger")){
return "success";
}else{
return "error";
}
}

}

在MyEclipse6.6.0上运行后提示错误:
严重: Exception starting filter struts2
Unable to load configuration. - action - file:/D:/Program%20Files/apache-tomcat-6.0.10/webapps/struts2/WEB-INF/classes/struts.xml:7:86
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:58)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:360)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:403)
at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:48)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3693)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:761)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:741)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1023)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1015)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:448)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: Action class [cn.itcast.struts2.action.LoginAction] not found - action - file:/D:/Program%20Files/apache-tomcat-6.0.10/webapps/struts2/WEB-INF/classes/struts.xml:7:86 at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyAction(XmlConfigurationProvider.java:405)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:355)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:460)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:265)
at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:189)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
... 31 more

刚开始整Struts2,helloword都没整出来,真受挫折啊!!请高手指点一下
...全文
422 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
longtenggdf 2009-12-04
  • 打赏
  • 举报
回复
你的struts.xml放在哪的,我开发放在web-inf下面,然后通过配置config参数老是加载不成功。后来还是老老实实放在web-inf/classes下面才OK了~
longtenggdf 2009-12-02
  • 打赏
  • 举报
回复
我发现原来我一直都没有搭建过struts2基本环境。刚搭了个和你差不多的,居然一直报
There is no Action mapped for action name login. - [unknown location]
真是悲剧啊!一直用springside现成的环境。也不好啊,连最基本的都搞不定!
zq2022 2009-12-02
  • 打赏
  • 举报
回复
改了一下:
<struts>
<package name="itcast" namespace="/test" extends="struts-default">
<action name="helloworld" class="cn.itcast.action.HelloWorldAction" method="execute" >
<result name="success">/WEB-INF/page/hello.jsp</result>
<result name="error">/WEB-INF/page/error.jsp</result>
</action>
</package>
</struts>

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<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>
其他的基本一样 这次可以 但不知道为什么??感觉差不多
laker_914 2009-12-02
  • 打赏
  • 举报
回复
你把tomcat放到D:\根目录下试试,有没有可能是空格(%20)的问题哟
laker_914 2009-12-02
  • 打赏
  • 举报
回复

Action class [cn.itcast.struts2.action.LoginAction] not found - action - file:/D:/Program%20Files/apache-tomcat-6.0.10/webapps/struts2/WEB-INF/classes/struts.xml:7:86 at


struts.xml 第7行是什么??
zl3450341 2009-12-02
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 kevindude 的回复:]
你的action为什么不继承ActionSupport?
Java codepublicclass LoginActionextends ActionSupport
[/Quote]

struts2不用继承ActionSupport
本来struts1耦合度高了 你struts2还继承ActionSupport 那没意义
zq2022 2009-12-02
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 kevindude 的回复:]
你试过没?
[/Quote]

试过了 不行
zq2022 2009-12-02
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 longtenggdf 的回复:]
没什么问题啊 难道你的action没有编译成功?你看看你webinfo 下面的classes里面有没有编译好的LoginAction.class
[/Quote]
编译成功了
kevindude 2009-12-02
  • 打赏
  • 举报
回复
你试过没?
longtenggdf 2009-12-02
  • 打赏
  • 举报
回复
没什么问题啊 难道你的action没有编译成功?你看看你webinfo 下面的classes里面有没有编译好的LoginAction.class
zq2022 2009-12-02
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 kevindude 的回复:]
你的action为什么不继承ActionSupport?
Java codepublicclass LoginActionextends ActionSupport
[/Quote]

POJO不是也可以作为action 不一定非得继承ActionSupport
kevindude 2009-12-02
  • 打赏
  • 举报
回复
你的action为什么不继承ActionSupport?
public class LoginAction extends ActionSupport
zq2022 2009-12-02
  • 打赏
  • 举报
回复
编译成功了 在classes目录下 \classes\cn\itcast\struts2\action\LoginAction.class
laker_914 2009-12-02
  • 打赏
  • 举报
回复
cn.itcast.struts2.action.LoginAction 你这个类有编译成功吗?

或者路径写错了
  • 打赏
  • 举报
回复
我试过了,没有问题。
zq2022 2009-12-02
  • 打赏
  • 举报
回复
bobo_916 你发的代码测试过吗?
  • 打赏
  • 举报
回复
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<html>
<head>
<title>登录页面</title>
</head>
<body>
<form action ="login.action" method="post">
<table align="center">
<caption><h3>用户登录</h3></caption>
<tr>
<td>用户名:<input type="text" name="username"/></td>
<td>密  码:<input type="text" name="password"/></td>
</tr>
<tr align="center">
<td colspan="2"><input type="submit" value="登录"/>
   <input type="reset" value="重填"/></td>
</tr>
</table>
</from>
</body>
</html>



zq2022 2009-12-02
  • 打赏
  • 举报
回复
不成啊 大家提出的错误我都试过了。还是不行!
zl3450341 2009-12-02
  • 打赏
  • 举报
回复
<form action="Login.action" method="post">
<action name="login" class="cn.itcast.struts2.action.LoginAction" method="execute">
zl3450341 2009-12-02
  • 打赏
  • 举报
回复
[code=Java]<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
[/code]
其余的看4,5楼
加载更多回复(8)

67,512

社区成员

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

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