当前位置: 技术问答>java相关
无法运行自己目录下的Servlet,十分困惑,求教!
来源: 互联网 发布时间:2015-05-27
本文导语: 无法运行自己目录下的Servlet,十分困惑,求教! 环境:Win98+Tomcat4.0 我建了一个自己的项目目录myapp,按书上说的,为它建立了一个子目录WEB-INF,再下面是子目录classes和lib,以及从tomcat的例子目录拷贝过来的web.xml文...
无法运行自己目录下的Servlet,十分困惑,求教!
环境:Win98+Tomcat4.0
我建了一个自己的项目目录myapp,按书上说的,为它建立了一个子目录WEB-INF,再下面是子目录classes和lib,以及从tomcat的例子目录拷贝过来的web.xml文件(没有改动),
然后把整个myapp拖到Tomcat的Webapps目录下面,于是困惑开始了:
1)如果我把自己的Servlet程序:HelloWWW.class文件放到myappWEB-INFclasses目录下,即:
D:Tomcat4webappsmyappWEB-INFclassesHelloWWW.class
然后在浏览器中输入:http://localhost:8080/myapp/servlet/HelloWWW
就报错:
--------------------------------------------------------------------------------
type Status report
message /myapp/servlet/HelloWWW
description The requested resource (/myapp/servlet/HelloWWW) is not available.
2)可是如果我把这个HelloWWW.class放到Tomcat的例子目录下,即:
D:Tomcat4webappsexamplesWEB-INFclassesHelloWWW.class
然后在浏览器中输入:http://localhost:8080/examples/servlet/HelloWWW
则运行成功。
我困惑的是,myapp和Tomcat的examples同样都是在webapps目录下,而且它们的web.xml和HelloWWW.class都是一样的,目录结构也是一样的,除了我的myapp目录下没有examples目录下的其他子目录比如images、jsp、servlet(这些都是没有关系的目录吧)以外,我觉得我的myapp目录和examples目录根本没什么不同,真正不同的就是,myappWEB-INFclasses下只有一个HelloWWW.class文件,而examplesWEB-INFclasses下有好多其他的.class文件。
可是为什么呢!那些.class文件都是我用不上的啊。
为什么在myapp目录下运行HelloWWW就报错,而在examples下就正常?
不明啊!
我也查了一些资料,发觉以前也有人提过类似的问题,我照那些解答做了(无非也就是建立一个有WEB-INF(大写)的目录,servlet要放在classes目录下,这些我都是对的啊),可还是没有用。
我甚至还试着在confserver.xml文件中增加了myapp的虚拟目录,如下:
仍然不对。
改为:
也一样没用。
不明啊!
看在我辛苦敲这么多字的分上,请请请指教!!!
环境:Win98+Tomcat4.0
我建了一个自己的项目目录myapp,按书上说的,为它建立了一个子目录WEB-INF,再下面是子目录classes和lib,以及从tomcat的例子目录拷贝过来的web.xml文件(没有改动),
然后把整个myapp拖到Tomcat的Webapps目录下面,于是困惑开始了:
1)如果我把自己的Servlet程序:HelloWWW.class文件放到myappWEB-INFclasses目录下,即:
D:Tomcat4webappsmyappWEB-INFclassesHelloWWW.class
然后在浏览器中输入:http://localhost:8080/myapp/servlet/HelloWWW
就报错:
--------------------------------------------------------------------------------
type Status report
message /myapp/servlet/HelloWWW
description The requested resource (/myapp/servlet/HelloWWW) is not available.
2)可是如果我把这个HelloWWW.class放到Tomcat的例子目录下,即:
D:Tomcat4webappsexamplesWEB-INFclassesHelloWWW.class
然后在浏览器中输入:http://localhost:8080/examples/servlet/HelloWWW
则运行成功。
我困惑的是,myapp和Tomcat的examples同样都是在webapps目录下,而且它们的web.xml和HelloWWW.class都是一样的,目录结构也是一样的,除了我的myapp目录下没有examples目录下的其他子目录比如images、jsp、servlet(这些都是没有关系的目录吧)以外,我觉得我的myapp目录和examples目录根本没什么不同,真正不同的就是,myappWEB-INFclasses下只有一个HelloWWW.class文件,而examplesWEB-INFclasses下有好多其他的.class文件。
可是为什么呢!那些.class文件都是我用不上的啊。
为什么在myapp目录下运行HelloWWW就报错,而在examples下就正常?
不明啊!
我也查了一些资料,发觉以前也有人提过类似的问题,我照那些解答做了(无非也就是建立一个有WEB-INF(大写)的目录,servlet要放在classes目录下,这些我都是对的啊),可还是没有用。
我甚至还试着在confserver.xml文件中增加了myapp的虚拟目录,如下:
仍然不对。
改为:
也一样没用。
不明啊!
看在我辛苦敲这么多字的分上,请请请指教!!!
|
你的web.xml文件是什么样的?
里面应包含: 放在 WEB-INF目录下.
HelloWWW
HelloWWW
里面应包含: 放在 WEB-INF目录下.
HelloWWW
HelloWWW
|
原因并不在这:
可以查看HelloWWW.java的源代码,有:
ResourceBundle rb = ResourceBundle.getBundle("LocalStrings",request.getLocale());
需要将examplesWEB-INFclasses下的LocalStrings.propertie文件copy至与HelloWWW.class一致的目录;
then 在调用时:
http://localhost:8080/examples/servlet/HelloWWW
ok!
或者在myappWEB-INF下的web.xml文件中添加:
HelloWWW
HelloWWW
HelloWWW
/HelloWWW
在调用时:
http://localhost:8080/examples/HelloWWW
不用在url中添加servlet
ok!
可以查看HelloWWW.java的源代码,有:
ResourceBundle rb = ResourceBundle.getBundle("LocalStrings",request.getLocale());
需要将examplesWEB-INFclasses下的LocalStrings.propertie文件copy至与HelloWWW.class一致的目录;
then 在调用时:
http://localhost:8080/examples/servlet/HelloWWW
ok!
或者在myappWEB-INF下的web.xml文件中添加:
HelloWWW
HelloWWW
HelloWWW
/HelloWWW
在调用时:
http://localhost:8080/examples/HelloWWW
不用在url中添加servlet
ok!
|
你应当在.xml的配置文件里面注册才行的。
不过我用的weblogic6,所以可能和你的方式不同,只是提个思路。
不过我用的weblogic6,所以可能和你的方式不同,只是提个思路。