`
touchmm
  • 浏览: 1037753 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

初恋struts

阅读更多
标题:初恋struts

关键字:JSP struts MVC Apache Tomcat

作者:jrq

内容:

struts是男是女,是雌是雄,是什么花花草草,是什么东东就不多说了。

近日尝试做一Hello Struts,记录下遇到的些许问题,权且备忘。
如另对初学者有些许帮助,则善莫大焉,聊作一慰。[:D]

BTW:“初恋struts” means “初练struts”(咳咳~~ 笔误笔误~~ [:D])

如下这些文字仅适合初恋者。如果是热恋或已婚者,那么就没有读下去的必要了。


一、Win2k + JDK1.4 + Apache Tomcat 4.1.27 + jakarta-struts-1.1 环境

本例新建struts项目应用的存放路径为:TOMCAT_HOME\webapps\ROOT\StrutsWeb 。
(TOMCAT_HOME是Apache Tomcat 4.1.27在服务器的安装路径,根据具体情况而有所不同,StrutsWeb即是一个struts项目应用的保存路径)


1.访问JSP页面:http://127.0.0.1:8080/StrutsWeb/index.jsp ,出现类似下面的错误提示:

“org.apache.jasper.JasperException: File "/WEB-INF/struts-bean.tld" not found”
“org.apache.jasper.JasperException: File "/WEB-INF/struts-html.tld" not found”

解决办法:

*1*.

先检查struts应用的标签文件的配置情况,对应\jakarta-struts-1.1\lib\中的*.tld文件,看看\StrutsWeb\WEB-INF\中的*.tld文件是否完整。
如果不全,则需要从\jakarta-struts-1.1\lib\中,把全部*.tld文件copy至\StrutsWeb\WEB-INF\中。
然后重新启动Apache Tomcat,看看效果如何。
*.tld是标签库描述器文件,它们描述了多个struts标记库中的自定义标签。

*2*.

如果确认struts项目的标签文件配置无误,那么,在一般情况下,是需要把struts项目的这个WEB应用在Tomcat的服务应用中单独描述出来,
即需修改TOMAT_HOME\conf\server.xml文件,在server.xml中找到如下行:

<!-- Tomcat Root Context -->
<!--
<Context path="" docBase="ROOT" debug="0"/>
-->

然后在其下面加上这句:

<Context path="/mystruts" docBase="TOMCAT_HOME\webapps\ROOT\StrutsWeb" debug="0" reloadable="true"/>

保存server.xml,然后重新启动Apache Tomcat,这样就可以访问这个WEB应用了。

即可这样访问:http://127.0.0.1:8080/mystruts/
http://127.0.0.1:8080/mystruts/index.jsp。

注意:“TOMCAT_HOME”的具体含义如前所述,是根据本机的情况而定的。



2.访问JSP页面:http://127.0.0.1:8080/mystruts/index.jsp ,出现如下的错误提示:

“org.apache.jasper.JasperException: Cannot find ActionMappings or ActionFormBeans collection”

解决办法:

*1*

对应\jakarta-struts-1.1\lib\中的*.jar文件(struts1.1共有10个*.jar文件),看看\StrutsWeb\WEB-INF\lib\中的*.jar文件是否完整。
如果在\StrutsWeb\WEB-INF\lib\中只有一个struts.jar,那么将其他的*.jar文件也copy到\StrutsWeb\WEB-INF\lib\中。
然后重新启动Apache Tomcat即可访问。
struts.jar是一个重要的文件,它包含了struts中的所有Java类。

*2*

如果经过上面的一步还没有搞定,那么请耐心的检查或修改\StrutsWeb\WEB-INF\中的struts-config.xml配置文件。
看看struts配置情况是否写错,action-mappings的配置是否写错。
一定要注意区分字母的大小写。
请再检查一遍。
然后请再检查一遍。
不要烦躁,一定要像对待初恋情人一样对待它,不然会死的很难堪!
一定要好好检查。
这个MVC中的C很要命的,流程控制全靠它了,一定要小心呵护的。[:D]
还有,记得修改完毕后重新启动Apache Tomcat。

*3*

我在网上看到有人对这个问题说“试了千百回,改了千百次,就是不知道什么原因”。
如果你也恰好和struts是初恋,也恰好试了千百回,改了千百次,
“Cannot find ActionMappings or ActionFormBeans collection”的错误仍然涛声依旧,
那么,请不要灰心,
相信我,胜利的喜悦你马上就能体会到!

因为,这里有一个毕杀绝技!!!!!

请按照如下操作:

打开TOMAT_HOME\conf\server.xml文件,找到在上面提到过的加入WEB应用的那一行:

<Context path="/mystruts" docBase="TOMCAT_HOME\webapps\ROOT\StrutsWeb" debug="0" reloadable="true"/>

然后对其修改成为:

<Context path="/mystruts" docBase="TOMCAT_HOME\webapps\ROOT\StrutsWeb" debug="0" reloadable="true" privileged="true"/>

这样就加上一个参数:privileged="true",这个参数是至关重要的。
(我花N多时间找了N多帖子问了N个人才搞定的,可见struts的初恋有多辛苦了!! [:(])

然后重新启动Apache Tomcat,这样访问JSP页面就没有问题了。[:D]

*4*

我在网上查找了一些struts应用的配置说明资料,一些配置资料上只提到把struts.jar这个文件copy到\WEB-INF\lib\中,
而并没有说需要把sturts的全部*.jar文件进行copy。
上面提到过,struts.jar包含了struts中的所有Java类。故我有此一试。
(当然,如果连struts.jar都没有了,那就没有搞头了。[:(] )

我只把struts.jar文件copy到\StrutsWeb\WEB-INF\lib\中,然后启动Apache Tomcat(当然,web.xml和struts-config.xml已经配置完毕)。
一试,果然不爽。

访问JSP页面时,看到提示错误:

“org.apache.jasper.JasperException: Cannot find ActionMappings or ActionFormBeans collection”

傻眼了。

又折腾了半天,发现上面提到的privileged="true"在这种情况下也可以发挥作用,
即修改server.xml文件,在<Context>的描述中加上参数privileged="true",使之变成这样:

<Context path="/mystruts" docBase="TOMCAT_HOME\webapps\ROOT\StrutsWeb" debug="0" reloadable="true" privileged="true"/>

这样就可以访问JSP页面并且运行无误,没有错误提示了。[^ō^]

所以可以得出这样一个东东:
如果在\StrutsWeb\WEB-INF\lib\中只有一个struts.jar而没有其他的*.jar文件,那么,在server.xml文件中把相对的WEB应用的描述进行修改,在其中加入privileged="true"参数,就可以使struts项目的应用正常运行且访问无误。



二、Win2k + JDK1.4 + Apache Tomcat 5.0.13 + jakarta-struts-1.1 环境

用Tomcat5作为JSP的容器,上述问题在struts中也会经常遇到,解决方法也都大致相同,privileged="true"对Tomcat5也同样有效。[:D]

下面主要说一下不同的地方。

平时对Apache Tomcat没有仔细研究,这次发现了几点,简略记录一下。

*1*

与Apache Tomcat4比较,Apache Tomcat5在其conf文件夹中增加了Catalina目录及子目录,其详细路径为:TOMCAT_HOME\conf\Catalina\localhost\,在localhost文件夹中全部是*.xml文件。
每个*.xml文件对应一个Tomcat的WEB应用的名字。

localhost文件夹中,Apache Tomcat5自动生成的有两个文件,即admin.xml和manager.xml文件。

当Apache Tomcat5启动后,就可以这样访问了:

http://127.0.0.1:8080/admin/
http://127.0.0.1:8080/manager/

其中,访问http://127.0.0.1:8080/admin/ ,通过用户名和密码的验证后,就可以进入Tomcat的WEB服务管理器(TOMCAT WEB SERVER ADMINISTRATION TOOL)了。

*2*

在Tomcat4中新增一个WEB应用项目的访问,是在TOMAT_HOME\conf\server.xml文件中增加一个<Context>描述,在server.xml中找到如下行:

<!-- Tomcat Root Context -->
<!--
<Context path="" docBase="ROOT" debug="0"/>
-->

然后在其下面加上这句:

<Context path="/mystruts" docBase="TOMCAT_HOME\webapps\ROOT\StrutsWeb" debug="0" reloadable="true"/>

保存server.xml后重新启动Apache Tomcat4,就可以通过http://127.0.0.1:8080/mystruts/ 来访问这个WEB应用了。

在Tomcat5中同样的也可以这么做。

同样的,在TOMAT_HOME\conf\server.xml文件中增加一个<Context>描述,重新启动Tomcat服务后就可以用来访问了。

需要特别指出的是,当在在Tomcat5的server.xml文件中增加一个<Context>描述后,重新启动Tomcat时,会自动在TOMCAT_HOME\conf\Catalina\localhost\路径下生成一个xml文件,这个xml文件的名称和<Context>描述中所写的WEB应用的名字是一样的。
如果server.xml文件中的这个<Context>描述有所改动的话(增加属性或修改属性),重新启动Tomcat时,这些改动变化都会及时的反映在同名的xml文件中(这样就做到了同步一致)。

例如上面在server.xml中所写的
<Context path="/mystruts" docBase="TOMCAT_HOME\webapps\ROOT\StrutsWeb" debug="0" reloadable="true"/>

当Tomcat5启动后,会在\Catalina\localhost\下生成一个名字为“mystruts.xml”的文件。
其内容和server.xml中所写的一样,为:

<Context docBase="TOMCAT_HOME/webapps/ROOT/StrutsWeb" path="/mystruts" reloadable="true">
</Context>

所以,我们可以这样说:如果要在Apache Tomcat5中新增WEB应用服务的话,就可以直接在TOMCAT_HOME\conf\Catalina\localhost\路径下编辑生成一个xml文件,在这个xml文件中写上相对应的<Context>描述即可,而不需要在server.xml中增加或编辑其他东东了。[^ō^]


*3*

另外,需要说明的是,Apache Tomcat正常安装后的启动方式有多个:

** 可以在TOMCAT_HOME\bin\中点击startup.bat来启动Tomcat服务。

** 可以在“开始”-->“程序”-->“Apache Tomcat”菜单中点击“Start Tomcat”来运行Tomcat服务。

但是,Tomcat4和Tomcat5的服务运行形式是不一样的。

Tomcat4无论从“startup.bat”点击运行还是从“Start Tomcat”点击运行,都会出现黑屏白字的命令提示符窗口(类DOS窗口),用来提示说明Tomcat服务的运行情况和一些日志信息。

Tomcat5从“startup.bat”点击运行后,出现的是黑屏白字的命令提示符窗口,而从“Start Tomcat”点击运行后,服务窗口不会出现,而只会在屏幕的右下方出现一个带绿色三角的托盘图标([:D]乍一看,这个图标和MS SQLSERVER服务管理器的图标几乎一模一样)。


*4*

使用Apache Tomcat5做服务,特别需要指出的是,如果在TOMAT_HOME\conf\server.xml文件中增加一个<Context>描述,
用“startup.bat”方式启动Tomcat服务时,在命令提示符窗口上会显示出如下信息(但是不会影响struts的使用)
------------------------------
警告: Error storing config file
java.io.FileNotFoundException: ..\..\conf\Catalina\localhost\mystruts.xml (系统找
不到指定的路径。)
------------------------------
并且\Catalina\localhost\下对应的xml文件不会得到更新。

从“Start Tomcat”点击运行Tomcat5服务是不会有这种情况的(这个可以察看Tomcat的日志文件)。


*5*

再来关注一下<Context>描述中的参数“privileged="true"”。

在路径TOMCAT_HOME\conf\Catalina\localhost\下,找到Apache Tomcat5自动生成的有两个文件,即admin.xml和manager.xml文件。

打开xml文件,能分别找到如下内容:
------------------------------
<Context path="/admin" docBase="../server/webapps/admin"
debug="0" privileged="true">
</Context>


<Context path="/manager" docBase="../server/webapps/manager"
debug="0" privileged="true">
</Context>
------------------------------

呵呵,看明白了吗?
Apache Tomcat5自动生成的xml文件中,对<Context>的描述中,都有一个参数,即privileged="true" 。



[完毕]


By jrq

2004年10月19日夜 于石市
分享到:
评论

相关推荐

    Molyx论坛 初恋夏天

    【标题】"Molyx论坛 初恋夏天" 指的可能是一个以"初恋夏天"为主题的网页模板设计,这通常适用于创建具有清新、浪漫氛围的网站,比如个人博客、情感故事分享平台或是纪念性的网站。这样的设计可能融入了柔和的色彩、...

    哈弗初恋汽车使用手册用户说明书pdf电子版下载.pdf

    哈弗初恋汽车使用手册详细介绍了该车型的配置、操作方法、安全驾驶注意事项、保养维修信息以及法律声明等,是车主驾驶和保养哈弗初恋汽车的重要参考资料。 首先,手册中强调了在使用车辆之前,用户需要仔细阅读手册...

    初恋浏览器v1.0绿色版下载

    初恋浏览器v1.0绿色版下载 软件大小版本:v1.0绿色免安装版,大小:50kb,支持系统:winxp/win2000/win2003/vista/win7 初恋浏览器是一个非常优秀的浏览器, 非常简单清爽; 初恋浏览器,让您浏览再多页面也只会在...

    御剑1.5 想念初恋

    御剑1.5版本 抓网站后台特好用 希望大家喜欢 虽然有点老 字典还是可以的

    周末·初恋の滋味.rar

    最后,这个压缩包中的“周末·初恋の滋味”可能是网页的主页面或一个特定部分的名称,这表明设计者可能试图通过网页设计来传达某种情感或故事,让浏览者在访问时能感受到一种特定的氛围或回忆。 总的来说,这个...

    超好用的初恋卡盟源码ASP程序开源

    初恋卡盟源码ASP程序开源用钱买的.分给大家了

    浏览器 初恋浏览器 v1.0

    "浏览器 初恋浏览器 v1.0" 是一个轻量级的网络浏览应用,它的主要特点在于其小巧的体积和高效的性能。这款浏览器被称为“初恋浏览器”,暗示了它旨在为用户提供简洁、清爽的上网体验,就如同初恋般美好而纯粹。 在...

    长城哈弗初恋车型手册_非汽车用户车主车辆操作驾驶说明书pdf电子版下载.pdf

    长城哈弗初恋车型手册_非汽车用户车主车辆操作驾驶说明书pdf电子版下载.pdf

    初恋情书的特性.doc

    【初恋情书的特性】 初恋情书,是青涩岁月中的独特载体,承载着人们初次体验爱情时那份纯净而深沉的情感。它不仅是情感的流露,更是青春记忆的珍贵见证。以下是初恋情书的两个主要特性: 1. **纯情性** 初恋情书...

    长城哈弗初恋_汽车驾驶教学操作视频车辆使用指南手册功能演示介绍详解说明书完整版.zip

    长城哈弗初恋完整版视频包括9个mp4文件。

    初恋的回忆精选.doc

    1. 初恋的情感影响:初恋作为人生中第一次深刻的恋情,往往承载着许多美好和纯真的记忆。它对个人的情感成长有着深远的影响,可能会成为衡量后续感情的标准。 2. 婚姻与初恋的关系:婚后面对初恋情人,可能会勾起...

    初恋情书的作用.doc

    初恋情书,作为情感表达的一种方式,其作用在青少年的情感发展中具有重要意义。在这个阶段,人们初次体验到爱情的甜蜜与困惑,情书则成为了一种沟通桥梁,帮助双方增进理解和深化感情。 首先,初恋情书是情感宣泄的...

    初恋的故事PPT模板下载

    【初恋的故事PPT模板下载】是一个以浪漫情感为主题的PPT设计资源,适合用于制作与初恋、恋爱故事相关的演示文稿。这个模板以其独特的设计风格,将巴士、黑夜背景、街道等元素巧妙融合,为讲述个人情感历程或者情感...

    苹果CMSV10最新初恋视界手机版模板.zip

    苹果CMSV10最新初恋视界手机版模板,某站花钱淘的,已测试完美无错,带会员中心。 引流吸粉视频/-两种播放模式/包天包月包年观看/仿抖音快手直播/广告自动弹窗 特点:可包天+包月+包年消费;源码全开源可二开; ...

    初中语文文摘情感初恋是一座美丽的古城

    《初中语文文摘情感初恋是一座美丽的古城》这篇文章讲述的是一位中年男子回忆起他的初恋故事,这段情感经历如同一座美丽的古城,尽管岁月流转,但在记忆中依然保持着最初的美好。故事的主人公是一个热爱旅行的男子,...

    世界一初恋 电脑XP主题下载 小野寺 高野政宗

    《世界一初恋 电脑XP主题下载 小野寺 高野政宗》 在这个数字化的时代,个人电脑的个性化成为了一种独特的表达方式。XP操作系统,虽然已经不是最新的系统,但因其稳定性和用户基础,仍有一部分用户在使用。本文将...

    初恋,我心中永远的痛.docx

    1. **情感与记忆的关联**:初恋往往是人生中最深刻的情感体验之一,它在个人的记忆中占据了特殊的位置。这段经历展示了人们如何将情感与特定的人、事件或时间紧密相连,即使时光流逝,情感的痕迹依然清晰。 2. **...

    高中语文文摘校园初恋一点也不浪漫

    9. 初恋的普遍性与非典型性:文章指出初恋可能并不像文学作品中描述的那样浪漫,而是带有个人特有的复杂情感和体验。 10. 成长与反思:通过反思自己的初恋经历,主角认识到现实与浪漫化的记忆之间的差距,这通常是...

    散文《遇见》初恋现代经典散文诗.rar

    标题中的“散文《遇见》初恋现代经典散文诗.rar”表明这是一个包含现代经典散文诗的压缩文件,主题聚焦于“遇见”这一情感丰富的题材,并且与初恋相关。这可能是一组文学作品,旨在描绘初次恋爱时的微妙情感和深刻...

Global site tag (gtag.js) - Google Analytics