ssh 框架下运行时Unable to instantiate Action, userAction, defined for <action name="userAction" class="userAction">class应为com.action.UserAction 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <bean id="userAction" class="com.action.UserAction" scope="prototype"><property name="userService" ref="userService"/></bean> 这个不是在bean中配置了吗 你输入的参数类型有错误 你调试一下看看 那个if else 判断都没有走在User u = this.userService.login(login_name, login_password);这句就已经报错了 你在检查一下 你在看看 走进User u = this.userService.login(login_name, login_password);之前 你所传入的参数的login_name, login_password 是否正确 应该是这两个参数的问题 ClassNotFoundException:userAction说明在nameSpace 中不能找到这个userAction你检查这个<package name="default" extends="struts-default" namespace="/">应该是路径问题, 你确定 进入了action 进入了login()这个方法吗 要是方法的没进的话 就是你配置有问题要是进入方法了的话 那就是你的User u = this.userService.login(login_name, login_password);有问题 那你就自己在一步一步的推测检查 看看web.xml spring的配置文件路径<context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext*.xml,classpath*:applicationContext.xml</param-value></context-param>如果没有前边的/web-inf/,classpath指spring的配置文件在src里边 Unable to instantiate Action, ....action.CertAction, defined for '...' in namespace '/...'null 原因是变量定义: private UserUtil userUtil = (UserUtil)ServletActionContext.getContext().getSession().get("userUtil"); 关键是这里,这个uerUtil成员变量使用了 action 的上下文"ServletActionContext.getContext()". 了解webwork中ServletDispatcher原理的人可能知道原因了, 因为ServletDispatcher接受客户端的HTTP请求,将JavaServlet的很多相关对象进行包装,再传给我们的XWork框架,由我 们的XWork 框架去解析我们的xwork.xml配置文件,根据配置文件的信息,创建对应的Action,组装并调用相应的拦截器,执行Action,返回执行结果。 因此每次客户端的请求都将调用ServletDispatcher 的 service()方法, 该方法执行顺序如下: 1、通过request请求取得action的命名空间 2、根据servlet请求的Path,解析出要调用该请求的Action的名字(actionName) 3、创建Action上下文(extraContext) 4、根据前面获得的namespace、actionName、extraContext,创建一个ActonProxy 5、执行proxy的execute()方法,根据Action执行返回的值去调用执行相应的Result(返回结果处理)的方法。 现在应该能明白,原来是Action对象实例在ActionContext对象实例之前创建的,所有这样取得ActionContext容器对象就有可能会返回null. 因此解决次问题方法很简单,就是最好不要在成员变量或者是构造方法里调用ActionContext,而把它放在其它方法里. 你有没有在struts.xml中配置<constant name="struts.objectFactory" value="spring"/> 为什么别的Action类可以实例,到UserAction就不行 找了N便了 , 坑爹 省市县的老问题....帮忙看一下逻辑或者有什么可以优化的地方 一个jdbc连接eclipse的jsp程序 求jsp长文章自动分页解决办法(有源码最好) 大虾们帮帮我 解决这个错误 (struts) 请问如何用JSP实现邮件群发??? 关于servlet的问题,着急等待ing....... struts简单问题,在线等…… 請問jsp中如何判斷一個字符串中是否包含另一個字符串? 新手被struts2的helloworld折磨了两天,求大神一句点破。 有人会java多线程的吗? 求教 tomcat 端口配置问题 主系统和子系统交互时,session问题(JSP)
<property name="userService" ref="userService"/>
</bean> 这个不是在bean中配置了吗
你在检查一下
你所传入的参数的login_name, login_password 是否正确
应该是这两个参数的问题
<package name="default" extends="struts-default" namespace="/">
应该是路径问题,
要是进入方法了的话 那就是你的User u = this.userService.login(login_name, login_password);有问题 那你就自己在一步一步的推测检查
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml,classpath*:applicationContext.xml</param-value>
</context-param>
如果没有前边的/web-inf/,classpath指spring的配置文件在src里边
原因是变量定义:
private UserUtil userUtil = (UserUtil)ServletActionContext.getContext().getSession().get("userUtil");
关键是这里,这个uerUtil成员变量使用了 action 的上下文"ServletActionContext.getContext()".
了解webwork中ServletDispatcher原理的人可能知道原因了, 因为ServletDispatcher接受客户端的HTTP请求,将JavaServlet的很多相关对象进行包装,再传给我们的XWork框架,由我 们的XWork 框架去解析我们的xwork.xml配置文件,根据配置文件的信息,创建对应的Action,组装并调用相应的拦截器,执行Action,返回执行结果。
因此每次客户端的请求都将调用ServletDispatcher 的 service()方法,
该方法执行顺序如下:
1、通过request请求取得action的命名空间
2、根据servlet请求的Path,解析出要调用该请求的Action的名字(actionName)
3、创建Action上下文(extraContext)
4、根据前面获得的namespace、actionName、extraContext,创建一个ActonProxy
5、执行proxy的execute()方法,根据Action执行返回的值去调用执行相应的Result(返回结果处理)的方法。
现在应该能明白,原来是Action对象实例在ActionContext对象实例之前创建的,所有这样取得ActionContext容器对象就有可能会返回null.
因此解决次问题方法很简单,就是最好不要在成员变量或者是构造方法里调用ActionContext,而把它放在其它方法里.
<constant name="struts.objectFactory" value="spring"/>