问一个servlet的问题?

fxstiandi 2004-06-15 10:31:13
我写了一个servlet,ExampleServlet.class,我的web应用程序的文件夹是fxs,把ExampleServlet.class放在D:\Apache Group\Tomcat 4.1\webapps\fxs\WEB-INF\classes\里,在浏览器中,输入http://127.0.0.1:8080/fxs/servlet/ExampleServlet则不能访问出错页面如下:

HTTP Status 404 - /fxs/

type Status report
message /fxs/
description The requested resource (/fxs/) is not available.

Apache Tomcat/4.1.29

我试着把ExampleServlet.class放在D:\Apache Group\Tomcat 4.1\webapps\examples\WEB-INF\classes中,并在浏览器中输入http://127.0.0.1:8080/examples/servlet/ExampleServlet则一切正常

我还试者把examples\WEB-INF中的web.xml替代fxs\WEB-INF中的web.xml也没有用

这是什么原因呢?请高人指点迷津!不胜感激!

...全文
172 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
start1127 2004-06-17
  • 打赏
  • 举报
回复
servlet类必须放在一个package中
zcjl 2004-06-17
  • 打赏
  • 举报
回复
回复人: yazoox(考拉) ( ) 信誉:100 2004-06-16 22:54:00 得分: 0


我在C:\tomcat\webapps\wileyapp目录下还有一个Context.jsp文件.
在IE中输入:http://localhost:8080/wileyapp/Context.jsp
同样报错(提示如前面一样)

但是我把Context.jsp文件拷贝到
C:\Inetpub\wwwroot\MyHomepage
即IIS的主页目录下,再输入http://localhost:8080/Context.jsp
确可以正常显示.
------------------------

因为你的虚拟目录配置错了
<Context path="/chapter2" reloadable="true" crossContext="true" docBase="C:\tomcat\webapps\wileyapp\WEB-INF\classes\chapter2" debug="0">
</Context>
改为
<Context path="/chapter2" reloadable="true" crossContext="true" docBase="C:\tomcat\webapps\wileyapp" debug="0">
</Context>





zcjl 2004-06-17
  • 打赏
  • 举报
回复
回复人: fxstiandi() ( ) 信誉:100 2004-06-16 23:44:00 得分: 0


多谢大家的回复。关于这个问题,用映射的方法来做当然是没有问题了。但是不用映射按我说的那样做,在我的应用程序文件夹下就不行。为什么放在examples目录里就可以了,我也按“happyegg(想转型的程序员)”说的那样改写了 conf\server.xml 可是还是不行,出现一样的出错页面。
--------------------------------------

examples里面可以直接用http://localhost:8080/examples/servlet/XXX的方式访问servlet,是因为在examples/WEB-INF/web.xml里有这样的配置:

<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>

对于你的应用,要么也在web.xml中加入这样的配置——注意要放对位置,在所有<servlet>标签之后。要么你就得一个个做映射,然后按映射的路径去访问


delphil 2004-06-17
  • 打赏
  • 举报
回复
必须按照这个方法来设WEB.XML
<servlet>
<servlet-name>servlet</servlet-name>
<servlet-class>fxs.ExampleServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>servlet</servlet-name>
<url-pattern>servlet/logon</url-pattern>
</servlet-mapping>
使用http://127.0.0.1:8080/fxs/servlet/logon访问

我想examples之所以可以是因为容器已经帮你设置好了,不用你再设置了
servlet是一定要设置的,没有其他办法
fxstiandi 2004-06-16
  • 打赏
  • 举报
回复
多谢大家的回复。关于这个问题,用映射的方法来做当然是没有问题了。但是不用映射按我说的那样做,在我的应用程序文件夹下就不行。为什么放在examples目录里就可以了,我也按“happyegg(想转型的程序员)”说的那样改写了 conf\server.xml 可是还是不行,出现一样的出错页面。

该怎么弄啊?大家再讨论一下吧!
百分百好牛 2004-06-16
  • 打赏
  • 举报
回复
to: Jzealot
注释去掉了.依然不行.
百分百好牛 2004-06-16
  • 打赏
  • 举报
回复
我在C:\tomcat\webapps\wileyapp目录下还有一个Context.jsp文件.
在IE中输入:http://localhost:8080/wileyapp/Context.jsp
同样报错(提示如前面一样)

但是我把Context.jsp文件拷贝到
C:\Inetpub\wwwroot\MyHomepage
即IIS的主页目录下,再输入http://localhost:8080/Context.jsp
确可以正常显示.
Jzealot 2004-06-16
  • 打赏
  • 举报
回复
<!--servlet>注释干嘛?
重启tomcat试试
百分百好牛 2004-06-16
  • 打赏
  • 举报
回复
这是我的web.xml文件(依然不行,报错依旧)...... :-(

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>

<servlet>
<servlet-name>SimpleServlet</servlet-name>
<servlet-class>chapter2.SimpleServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>SimpleServlet</servlet-name>
<url-pattern>servlet/SimpleServlet</url-pattern>
</servlet-mapping>

</web-app>

PS:
1.顺便问一下,在WEB-INF\lib文件夹下面什么都没有?是不是这个的原因...
2.web.xml应该放在哪里?我的放在WEB-INF目录下面在.
百分百好牛 2004-06-16
  • 打赏
  • 举报
回复
这是我按蓝天的方法写的.
<!--servlet>
<servlet-name>servlet</servlet-name>
<servlet-class>chapter2.SimpleServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>servlet</servlet-name>
<url-pattern>servlet/SimpleServlet</url-pattern>
</servlet-mapping-->

http://LocalHost:8080/wileyapp/servlet/SimpleServlet访问,依然报错.


HTTP Status 404 - /wileyapp/servlet/SimpleServlet

--------------------------------------------------------------------------------

type Status report

message /wileyapp/servlet/SimpleServlet

description The requested resource (/wileyapp/servlet/SimpleServlet) is not available.

Jzealot 2004-06-16
  • 打赏
  • 举报
回复
不要去修改server.xml
要在web.xml建立相应的映射,按 bluesky35(蓝天) 说的那样配置吧
wuguix 2004-06-16
  • 打赏
  • 举报
回复
进入tomcat安装目录,找到\conf\server.xml,打开这个文件

增加
<Context path="/fxs" docBase="fxs" debug="0" reloadable="true" crossContext="true">
</Context>
保存,退出,重起tomcat
键入http://localhost:8080/fxs
就可以访问了。
百分百好牛 2004-06-16
  • 打赏
  • 举报
回复
兄弟们,该如何调整呢?
可不可以说得详细点
谢谢!
reners 2004-06-16
  • 打赏
  • 举报
回复
的确,可能是你的配置文件搞错了
百分百好牛 2004-06-16
  • 打赏
  • 举报
回复
我和楼主也是一样的情况,在webapps\wileyapp\WEB-INF\classes中有下面三个文件
SimpleServlet.class
ContextServlet.class
ParameterServlet.calss

然后在conf\server.xml中加入
<Context path="/chapter2" reloadable="true" crossContext="true" docBase="C:\tomcat\webapps\wileyapp\WEB-INF\classes\chapter2" debug="0">
</Context>

最后,打开tomcat服务(startup.bat),然后在IE中输入:
http://LocalHost:8080/wileyapp/servlet/chapter2.SimpleServlet
提示和楼主的一模一样.估计我们俩是碰到同一问题了...
:(
yunxiang 2004-06-16
  • 打赏
  • 举报
回复
你写的类编译通过了吗?
bluesky35 2004-06-16
  • 打赏
  • 举报
回复
http://127.0.0.1:8080/examples/servlet/logon访问
bluesky35 2004-06-16
  • 打赏
  • 举报
回复
web.xml没有配置好
<servlet>
<servlet-name>servlet</servlet-name>
<servlet-class>fxs.ExampleServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>servlet</servlet-name>
<url-pattern>servlet/logon</url-pattern>
</servlet-mapping>
使用servlet/logon访问
happyegg 2004-06-16
  • 打赏
  • 举报
回复
你在tomcat目录下的\conf\server.xml中
找到诸如
<Context path="/examples" docBase="examples" debug="0"...
....
</Context>
的地方,在这个下面加上
<Context path="/fxs" docBase="fxs" debug="0" reloadable="true" crossContext="true">
</Context>

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧