- 浏览: 1527046 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (525)
- SEO (16)
- JAVA-EE-Hibernate (6)
- JAVA-EE-Struts (29)
- JAVA-EE-Spring (15)
- Linux (37)
- JAVA-SE (29)
- NetWork (1)
- CMS (14)
- Semantic Research (3)
- RIA-Flex (0)
- Ajax-Extjs (4)
- Ajax-Jquery (1)
- www.godaddy.com (0)
- SSH (34)
- JavaScript (6)
- SoftwareEngineer (9)
- CMMI (0)
- IDE-Myeclipse (3)
- PHP (1)
- Algorithm (3)
- C/C++ (18)
- Concept&Items (2)
- Useful WebSite (1)
- ApacheServer (2)
- CodeReading (1)
- Socket (2)
- UML (10)
- PowerDesigner (1)
- Repository (19)
- MySQL (3)
- SqlServer (0)
- Society (1)
- Tomcat (7)
- WebService (5)
- JBoss (1)
- FCKeditor (1)
- PS/DW/CD/FW (0)
- DesignPattern (11)
- WebSite_Security (1)
- WordPress (5)
- WebConstruction (3)
- XML|XSD (7)
- Android (0)
- Project-In-Action (9)
- DatabaseDesign (3)
- taglib (7)
- DIV+CSS (10)
- Silverlight (52)
- JSON (7)
- VC++ (8)
- C# (8)
- LINQ (1)
- WCF&SOA (5)
- .NET (20)
- SOA (1)
- Mashup (2)
- RegEx (6)
- Psychology (5)
- Stock (1)
- Google (2)
- Interview (4)
- HTML5 (1)
- Marketing (4)
- Vaadin (2)
- Agile (2)
- Apache-common (6)
- ANTLR (0)
- REST (1)
- HtmlAnalysis (18)
- csv-export (3)
- Nucth (3)
- Xpath (1)
- Velocity (6)
- ASP.NET (9)
- Product (2)
- CSS (1)
最新评论
-
lt26w:
理解成门面模式应该比较容易明白吧
FacadePattern-Java代码实例讲解 -
lt26w:
看下面的例子比较明白.
FacadePattern-Java代码实例讲解 -
javaloverkehui:
这也叫文档,别逗我行吗,也就自己看看。
HtmlCleaner API -
SE_XiaoFeng:
至少也应该写个注释吧。
HtmlCleaner API -
jfzshandong:
...
org.springframework.web.filter.CharacterEncodingFilter 配置
HTTP Status 404 - Servlet action is not available(二)
- 博客分类:
- JAVA-EE-Struts
今天在帮公司的新手弄SSH的一个登录程序时,出现了Servlet action is not
available异常,第一反应应该是struts配置的问题,找了段时间发现配置没错,搜索了下,找了几篇好文,问题成功解决,原来是那个大头虾将
spring的配置文件中hibernate的model文件路径写错了,这种问题还真难找,我眼睛睁得圆圆的,找了N久才找到。
共享下网上资料:
1. http://community.csdn.net/Expert/TopicView3.asp?id=4927147
原文如下:
最近在做开发用STRUTS+SPRING+HIBERNATE
遇到一个很棘手的错误:Servlet action is not available
具体症状如下:
文件夹系统:
com.Athena.data.hibernate 存放HIBERNATE的工厂类
com.Athena.data.po.imp 存放持久化对象
com.Athena.data.dao.imp 存放数据访问对象
com.Athena.data.bo.imp 存放业务逻辑处理BEAN
com.Athena.service 存放功能总接口类
com.Athena.action 存放ACTION
com.Athena.form 存放FORM
com.Athena.prop 存放信息文件properties
开发工具ECLIPSE 3.1.1
由于开发中用的是MYECLIPSE4.1 所以生成数据表的影射文件的时候没有被放到指定的包中,全部被工具自动放到了缺省包中
被放到缺省包中的文件:(影射的表为user_first)
AbstractUser_First.java
User_First.java
User_FirstDAO.java
User_First.hbm.xml
此时,各个配置文件的关键代码是:
applicationContext.xml:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="mssqldata" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>User_First.hbm.xml</value>
</list>
</property>
</bean>
<bean id="User_FirstDAO" class="User_FirstDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
struts-config.xml:
<action-mappings >
<action
attribute="loginForm"
input="/login.jsp"
name="loginForm"
path="/login"
scope="request"
type="org.springframework.web.struts.DelegatingActionProxy" />
</action-mappings>
在STRUTS中我写了一个登陆,包括loginForm.java , loginAction.java ,login.jsp
登陆的逻辑是:输入用户名和密码都为“HAHA”的时候 在页面上返回登陆成功字样,否则则返回登陆失败(为了测试,所以ACTION中没有涉及任何访问数据的东西,仅仅是在其中通过SPRING的注入机制,向里面注入了一个字符串,并在控制台打出)
loginAction关键源码:
private String sm;
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;
String username=loginForm.getUsername();
String userpass=loginForm.getUserpass();
if(username.equals("haha")&&(userpass.equals("haha"))){
ActionMessages meg=new ActionMessages();
meg.add("userlogout",new ActionMessage("user.logon"));
saveErrors(request,meg);
System.out.println(username+" "+userpass+" "+sm);
return mapping.findForward("logout");
}else{
ActionMessages meg=new ActionMessages();
meg.add("userlogon",new ActionMessage("user.logout"));
saveErrors(request,meg);
System.out.println(username+" "+userpass+" ");
return mapping.findForward("logout");
}
}
public String getSm() {
return sm;
}
public void setSm(String sm) {
this.sm = sm;
}
在applicationContext.xml中的注入代码:
<bean name="/login" class="com.Athena.action.LoginAction" singleton="false">
<property name="sm">
<value>dadadada</value>
</property>
</bean>
---------------------------------------------------------------------------------
以上是没有任何问题,网页运行正常,但是当我把被工具自动放到缺省包的那些文件转移到相应包之后,我修改了如下东西(以下是修改的):
applicationContext.xml:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="mssqldata" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/Athena/data/po/imp/User_First.hbm.xml</value> //在此我添加了路径
</list>
</property>
</bean>
<bean id="User_FirstDAO" class="com.Athena.data.dao.imp.User_FirstDAO">
//在此我添加了路径
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
User_First.htm.xml 的修改:
<hibernate-mapping package="com.Athena.data.po.imp">
<class name="com.Athena.data.po.imp.User_First" table="AthenaCompany" >
被自动放到缺省包的文件的路径变更:
AbstractUser_First.java com.Athena.data.po
User_First.java com.Athena.data.po.imp
User_FirstDAO.java com.Athena.data.dao.imp
User_First.hbm.xml com.Athena.data.po.imp
------------------------------------------------------------------------------
做了以上修改后(以上各个配置文件的路径修改都是我仔细检查过的,只不过现在有点眼花了,所以如果写错了,请不用给予纠正,那可能是我打错了),再次启动网页,登陆界面正常出,一点提交,就会返回错误:Servlet action is not available
疑问:
ACTION中没有涉及任何的数据访问和业务逻辑,仅仅是简单的判断,为什么移动了几个不相关的文件就说是找不到ACTION了呢? (网络上也有很多答案,结果还是一无所获)
如果哪位大侠可以赐教,请加我的MSN:Mars.Eric@hotmail.com
在此拜托了,处理了3天了,快死了。
回复人:Eric_Mars() ( ) 信誉:100 | 2006-8-4 17:10:50 | 得分: 0 | |
? |
|
2. Servlet action is not available 问题解决
原文出处:
http://blog.csdn.net/lijiuu/archive/2007/03/22/1538069.aspx
文章如下:
环境eclipse3.2+myeclipse+tomcat5.0x
重要提示:出现这个问题的原因很多,最多见的是配置文件出错不能初始化出现Servlet action is not available提示。要解决问题需要具体问题具体分析,多看容器的logs。
背景提示,我要做struts+spring+hibernate的配置,但是按照书上说的配置好了后,总是错误,提示Servlet action is not available后台log就提示2006-03-22 22:34:09 StandardWrapperValve[action]: Servlet action is currently unavailable。弄了很久没有弄好。后来看了很久的log才发现提示配置文件中有错误,所以把action设置为null。
在找这个错误,找了很久才发现:一个是
< plug-in
className ="org.springframework.web.struts.ContextLoaderPlugIn" >
< set-property property ="contextConfigLocation"
value ="/WEB-INF/classes/applicationContext.xml" />
</ plug-in >
在struts中配置spring插件时,applicationContext.xml(spring的配置文件)位置错了,书上一般是"/WEB-INF/applicationContext.xml" 但是有的时候不是在这个下面。所以一定要自己到容器下看看具体位置。比如我的就是在web-inf/classes下。
二是:在spring的配置文件下的插入hibernate的配置文件
class
="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
>
<
property
name
="configLocation"
>
<
value
>
file:src/hibernate.cfg.xml
</
value
>
</
property
>
</
bean
>
myeclipse自动添加的是这样的,我一直没有注意,结果应该为:
class
="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
>
<
property
name
="configLocation"
>
<
value
>
file:src/hibernate.cfg.xml
</
value
>
</
property
>
</
bean
>
提示:hibernate.cfg.xml文件的具体位置你要到容器下去看。
重要提示:
1、还有就是一定要在 struts配置文件中加: <controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"/& gt;。这样你的action才能真的委托给spring。
2、我发现我的myeclipse没有把spring.jar拷贝到lib下,以后大家出了问题可以看看。
利用spring+hibernate+struts过程中,发现一个问题,在action中将一个hibernate读取出来的ArrayList存入 session:request.getSession().setAttribute("treeFromRoot", treeList.iterator());
在jsp中用标签 读取代码如下:会出现Cannot create iterator for this collection 错误,弄了一下午都没有搞定。
< logic:iterate type ="edu.scnu.es.struts.vo.Tree" id ="tree"
name ="treeFromRoot" >
</ logic:iterate >
</ logic:notEmpty >
最后决定用JSTL试一试,代码改为:成功了。
${treeFromRoot1.id };
</ c:forEach >
其中:edu.scnu.es.struts.vo.Tree是treeFromRoot这个list的成员的原形类。
<!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"> <rdf:Description rdf:about="http://www.blogjava.net/amigoxie/archive/2007/04/27/114141.html" dc:identifier="http://www.blogjava.net/amigoxie/archive/2007/04/27/114141.html" dc:title="Servlet action is not available异常备忘" trackback:ping="http://www.blogjava.net/amigoxie/services/trackbacks/114141.aspx" /> </rdf:RDF> -->
<script type="text/javascript"> //<![CDATA[ Sys.WebForms.PageRequestManager._initialize('AjaxHolder$scriptmanager1', document.getElementById('Form1')); Sys.WebForms.PageRequestManager.getInstance()._updateControls(['tAjaxHolder$UpdatePanel1'], [], [], 90); //]]> </script>
<!-- done-->
还有就是一定要在struts配置文件中加: <controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"/& gt;。这样你的action才能真的委托给spring。
是什么意思啊 ,能说的具体点吗,我的SSH,没有加这个,我不知道该加在什么地方,我的struts配置文件内容如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources />
<form-beans >
<form-bean name="loginForm" type="org.apache.struts.validator.DynaValidatorForm" >
<form-property name="password" type="java.lang.String" />
<form-property name="username" type="java.lang.String" />
</form-bean>
</form-beans>
<global-exceptions />
<global-forwards>
<forward name="goOk" path="/ok.jsp" />
</global-forwards>
<action-mappings >
<action
attribute="loginForm"
input="/login.jsp"
name="loginForm"
parameter="method"
path="/login"
scope="request"
type="org.springframework.web.struts.DelegatingActionProxy">
</action><!-- 被改动过 -->
</action-mappings>
<message-resources parameter="com.xingfanbin.view.struts.ApplicationResources" />
<plug-in className="org.apache.struts.tiles.TilesPlugin">
<set-property property="definitions-parser-validate" value="true" />
<set-property property="definitions-config" value="/WEB-INF/tiles-config.xml"/>
</plug-in>
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
</plug-in>
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml,/WEB-INF/serviceContext.xml,/WEB-INF/viewContext.xml" />
</plug-in>
</struts-config> 回复 更多评论
2007-07-31 16:48 | soCrazy
学习了!我今天也碰到这样的问题了,最后发现是my eclipse默认的库文件没包含web支持,所以spring容器启动就有问题,用spring完整库就可以了,呵呵! 回复
更多评论
发表评论
-
fckedit和struts2集成不能上传文件的解决方法
2010-01-24 10:52 1617以前在使用fckedit+strut1上传文件很顺利,后来使用 ... -
struts validator框架
2010-01-09 13:56 1425Struts 验证器基础 步骤 1. 安装 Strut ... -
The path of an ForwardConfig cannot be null-struts validator验证框架异常
2010-01-09 13:54 3046struts validator验证框架异常 在测 ... -
关于一个Action对应多个Form
2009-12-28 23:49 1506由于一个Action可以用多个path来访问,所以我们可以通过 ... -
一个Action对应多个Form DispatchAction
2009-12-28 23:32 2705一个Action对应多个Form ... -
DynaValidatorForm类
2009-12-28 23:23 1286DynaValidatorForm类 http ... -
Struts出现No getter method for property的解决
2009-12-28 22:48 2009请从一下几方面着手检查代码 1、JavaBean中的属性 ... -
Struts Validator验证器使用指南
2009-12-07 18:34 786Struts Validator 验证器 ... -
Form '***' not found for locale 'zh _CN'
2009-12-07 16:13 4360Form '***' not found for locale ... -
Struts2 拦截器详细配置过程
2009-12-06 21:23 18211:所有拦截器的超级接口Interceptor ,Ac ... -
如何在SSH框架中使用Validator框架
2009-12-05 00:19 1330关键字: validator 下 ... -
java.lang.NoSuchMethodException
2009-12-04 23:56 2048关键字: validator 下面将介绍如何在SSH框架 ... -
Struts验证框架与一些技巧
2009-12-04 23:46 16189还是通过一些步骤例子说明 首先建立Struts工程的时候要 ... -
Struts-validator验证框架与一些技巧
2009-12-04 23:44 1159这个框架褒贬不一呀~~~ =========== ... -
struts 标签详解
2009-12-04 21:28 1037struts 标签详解 Action和jsp的开发其实就 ... -
HTTP Status 404 - Servlet action is not available(一)
2009-12-04 18:40 7830sp /meCall 发表于2007-10-08, 1 ... -
SSH中Cannot retrieve mapping for action
2009-12-04 18:22 2183<script type="text ... -
Cannot retrieve mapping for action 之 问题解决
2009-12-04 18:21 11337struts的form标 ... -
利用Struts的Validator验证框架实现客户端和服务器端双验证
2009-12-04 18:18 1541... -
struts的parameter功能
2009-12-04 17:32 1071没有struts之前,使用servlet,最常用的是d ...
相关推荐
在Web开发中,尤其是使用基于Java的Web框架如Struts时,开发者可能会遇到一个常见的问题:“HTTP Status 404 - There is no Action mapped for namespace and action name BackMemberGroupAudit”。这个问题通常出现...
一直出现HTTP Status 404 - Servlet action is not available -------------------------------------------------------------------------------- type Status report message Servlet action is not available...
HTTP Status 404 解决方案总结 HTTP Status 404 是一个常见的错误代码,它表示请求的资源不可用。在本文中,我们将讨论七种常见的解决方案,以帮助开发者快速解决该问题。 1. 未部署 Web 应用 如果您遇到了 HTTP ...
"HTTP_Status_404解决方案详解" HTTP Status 404是指客户端向服务器请求资源时,服务器无法找到该资源,从而返回的状态码。这个错误码可能会因为多种原因引起,以下是 several 解决方案: 一、未部署Web应用 解决...
HTTP状态码404,全称为“Not Found”,是客户端请求成功发送至服务器,但服务器在查找资源时未能找到对应资源的一种响应状态。这通常意味着请求的网页或资源不存在于服务器上,或者由于某些配置问题导致服务器无法...
错误提示如下图: 出现这种情况的原因通常是因为先安装了Framework,后安装的IIS; 运行cmd,输入: 代码如下:C:\Windows\Microsoft.NET\Framework\V4.0.30319\aspnet...Win7中IIS出现“HTTP 错误 404.17 – Not Foun
- **根本原因**:`java.lang.Error: Unresolved compilation problem: The method setAttribute(String, Object) in the type ServletRequest is not applicable for the arguments (String, double)` - **发生位置*...
本文将深入探讨HTTP Servlet请求的源码实现,并针对"HTTP method GET is not supported by this URL"这一常见错误进行分析和解决。 首先,让我们理解HTTP Servlet的工作原理。每当一个HTTP请求到达Web服务器时,...
【猜数字游戏-Servlet练习】是一个适合初学者的项目,旨在帮助学习者深入理解Servlet技术。Servlet是Java Web开发中的核心组件,它扩展了Web服务器的功能,允许我们编写动态、交互式的网页应用。在这个练习中,我们...
if (xhr.readyState === 4 && xhr.status === 200) { var json = JSON.parse(xhr.responseText); // 处理返回的JSON数据 } }; xhr.send(JSON.stringify(yourData)); ``` 以上就是关于“json-servlet-ajax”的...
Called by the servlet container to indicate to a servlet that the servlet is being taken out of service. destroy() - Method in class javax.servlet.GenericServlet Called by the servlet container to ...
Java Servlet API说明文档 绪言 这是一份关于2.1版JavaServletAPI的说明文档,作为对这本文档的补充,你可以到http://java.sun.com/products/servlet/index.html下面下载Javadoc格式的文档。 谁需要读这份文档 这份...
在JavaWeb开发中,Servlet是一种Java编程语言编写的服务器端程序,主要功能是处理客户端(浏览器)发送的HTTP请求,并返回响应结果。本教程聚焦于Servlet的实际应用,以《JavaWeb开发实战宝典》第四章内容为基础,...
### Oracle 10g 提示 Oracle Not Available 的个人总结与解决方案 #### 一、问题概述 在使用 Oracle 10g 数据库时,可能会遇到“ORA-01034: ORACLE not available”和“ORA-27101: shared memory realm does not ...
### zabbix-server is not running 解决方法 #### 一、问题背景 在部署Zabbix监控系统的过程中,可能会遇到“zabbix-server is not running”的错误提示。这种情况通常发生在虚拟机重启之后,原本正常运行的Zabbix...
解决camera运行出现uvcvideo: Non-zero status (-71) in video completion handler.
当你尝试访问一个Web应用时,如果遇到"HTTP Status 404 - Servlet action is not available"的错误,这通常意味着你试图访问的资源未在服务器上找到,或者Web应用配置存在问题。以下将详细介绍SSH文件与HTTP状态码...
《PyPI官网下载:深入解析py3status-ups-battery-status-0.1.3.tar.gz》 在Python的生态系统中,PyPI(Python Package Index)是最重要的资源库,它为开发者提供了一个分享和获取Python软件包的平台。本文将详细...
05-Status-Codes-Chinese.pdf 06-Response-Headers-Chinese.pdf 07-Cookies-Chinese.pdf 08-Session-Tracking-Chinese.pdf 09-JSP-Intro-Chinese.pdf 10-JSP-Scripting-Elements-Chinese.pdf 11-page-Directive-...
标题中的"PyPI 官网下载 | Products.statusmessages-5.0.3.tar.gz"指出这是一个在Python Package Index (PyPI) 上发布的软件包。PyPI是Python开发者用来分享和发现第三方库的主要平台。"Products.statusmessages-...