免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1193 | 回复: 1

请学java的兄弟指点一下。 [复制链接]

论坛徽章:
0
发表于 2003-12-16 18:32 |显示全部楼层
我目前正在学习jsp/servlet, 使用tomcat 4.1.29, jdk是:1.4.2_02
jdk,默认安装在/usr/java/j2sdk1.4.2_02下。
tomat 安装在/usr/local/server/tomcat,使用用户tomcat来管理这个服务器。
设置好了各种环境变量,而且已经能够运行jsp了。
但是在这里我有一个很难搞明白的问题。那就是bean和servlet小程序应该放在哪里。
有兄弟说是放在你的项目里的WEB-INF/classes目录下的。
直接将原程序拷到里面就ok了。
那么我现在的概念是这样的:任何bean和servlet小程序都放入到项目的WEB-INF/classes目录里的。
然后你可以通过如果下的url来访问你的servlet: ttp://127.0.0.1:8080/你的项目虚拟路径/servlet/你的servlet小程序名, 在jsp里通过直接引用bean的名字也可以访问bean,但是我象如下这样做,却出现了问题:

我新建了一个叫li的项目,然后向tomcat的conf目录里的server.xml文件中增加如下的行:
<Context path="/li" docBase="/home/ghw/workdir/li" debug="0" reloadable="true" workDir="/home/ghw/workdir/li/work">;
</Context>;
然后在/home/ghw/workdir/li这个目录下新建立如下的目录:
mkdir WEB-INF
cd WEB-INF
mkdir classes

在这里我们为了麻烦和减少错误,我直接将tomcat中自带的一个例子examples/WEB-INF/classes/HelloWorldExample.java拷到/home/ghw/workdir/lib/WEB-INF/classes中去。
我为了进一步得到些什么进入到这个目录里:/home/ghw/workdir/li/WEB-INF
手工编写了一个web.xml
内容如下:

<?xml version="1.0" encoding="ISO-8859-1" ?>;
<web-app>;
<servlet>;
<servlet-name>;HelloWorldExample</servlet-name>;
<servlet-class>;HelloWorldExample</servlet-class>;
</servlet>;

<servlet-mapping>;
<servlet-name>;HelloWorldExample</servlet-name>;
<url-pattern>;/servlet/*</url-pattern>;
</servlet-mapping>;
</web-app>;

存盘后退出。
然后启动tomcat,
在浏览器里这样访问jsp没有任何问题,但是访问servlet,出现如下错误:
http://127.0.0.1:8080/li/servlet/HelloWorldExample

type Status report

message Servlet HelloWorldExample is currently unavailable

description The requested service (Servlet HelloWorldExample is currently unavailable) is not currently available.

然后我为了搞清楚到底是怎么回事。我去examples这个应用下,进入它的WEB-INF里,删除掉web.xml这个文件,然后运行servlet,运行正常。看来不关web.xml的事。
然后我将examples这个目录改名为myjsp,
删除掉tomcat 的conf里server.xml里关于examples的定义。自己手工加入一段:
<Context path="/myjsp" docBase = "myjsp" debug="0" reloadable="true" />;
保存后重启动tomcat,使用:http://localhost:8080/myjsp/servlet/HelloWorldExamples
也可以访问。那为什么我自己的项目就是不能访问呢?
问题到底出在哪里呢?是不是我的环境变量里没有引用servlet.jar这个位置呢?
echo $CLASSPAH 的确没有包括这个servlet的位置,但是这个和servlet有关系吗?
我的tomcat不是已经启动了吗?
现在我真是很困惑,请java高手指教。谢谢。

论坛徽章:
0
发表于 2003-12-17 08:30 |显示全部楼层

请学java的兄弟指点一下。

Did you check the permission of WEB-INF and classes? make sure they can be accessed by user 'tomcat'.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP