关于在tomcat中如何建立一个webapp的问题。我老是建不起来。大伙救命啊(100分)

  • 主题发起人 主题发起人 serial0
  • 开始时间 开始时间
S

serial0

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在tomcat 4.0的webapps下建立一个webapp程序来学习servlet/jsp。但是总是无法成功地
建立起来,我试几天了,我手上的书和tomcat的文档也都看了,就是找不出来错误,大伙帮一帮我吧。
我在webapps在建了一个程序名telexmanager,其目录结构是:
/webapps/telexmanager/index.html
/webapps/telexmanager/jsp/test.jsp
/webapps/WEB-INF/web.xml
/webapps/WEB-INF/classes/HelloWorldExample.class(这是tomcat自带的,被我拷到这里)
我在tomcat的server.xml为这个程序加了一行context:
<Context path="/telexmanager"do
cBase="telexmanager" debug="0" reloadable="true"/>
我的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>
<!-- General description of your web application -->
<display-name>telexmanager</display-name>
<description>
This is version X.X of telexmanager
</description>
<context-param>
<param-name>webmaster</param-name>
<param-value>myaddress@mycompany.com</param-value>
<description>
The EMAIL address of the administrator to whom questions
and comments about this application should be addressed.
</description>
</context-param>
<!--这个web.xml是从tomcat文档中给出的程序的web.xml起点文件中拷来的,我只加了下面一个servlet -->
<servlet>
<servlet-name>HelloWorldExample</servlet-name>
<servlet-class>HelloWorldExample</servlet-class>
</servlet>
<session-config>
<session-timeout>30</session-timeout> <!-- 30 minutes -->
</session-config>
</web-app>
现在的情况是,我访问
http://localhost:8080/telexmanger/index.html 正常
http://localhost:8080/telexmanager/jsp/test.jsp 正常
但是访问HelloWorldExample时就出错了
http://localhost:8080/telexmanager/servlet/HelloWorldExample
错误信息如下:
Apache Tomcat/4.0.3 - HTTP Status 500 - Internal Server Error
--------------------------------------------------------------------------------
type Exception report
message Internal Server Error
description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.
exception
java.util.MissingResourceException: Can't find bundle for base name LocalStrings, locale zh_CN
at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:804)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:773)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:538)
at HelloWorldExample.doGet(HelloWorldExample.java:25)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:446)
at org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:180)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1012)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107)
at java.lang.Thread.run(Thread.java:536)
我觉得我的错误主要就是在设置上,估计是在程序的web.xml或是在tomcat的server.xml中。
不过,我是找不出来了。
哪位能告诉我错在什么地方啊。另外,在tomcat下或是其他servlet容器中,建立webapps
有什么地方是特别要注意的。
 
你看看你的Locale.
试试看在你的index.jsp里面加入一句
<%java.util.Locale.setDefault(java.util.Locale.US);
%>
然后先执行你的index.jsp,再执行你的servlet
你的错误在于你的servlet试图去取得资源,但是没有找到。
 
“你的错误在于你的servlet试图去取得资源,但是没有找到。”
的确是这样的。
不过,我想我这个例子程序是正常的。
它是tomcat自带的例程,在tomcat中能正常运行。
可是一被我拷到我的程序的classes目录下,就变成这样了。
我觉得还是设置上的问题吧。还请继续指点。
 
/webapps/telexmanager/WEB-INF/web.xml
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/webapps/telexmanager/WEB-INF/classes/HelloWorldExample.class
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TOMCAT 每个webapp都有自己的WEB-INF!你放的地方不对。应按上边的放!
web.xml也有问题!<web-app></web-app>间的东西全去掉!
 
唉。你把那些sampel下的properties文件全都copy过来。
 
to:liu_xiao_bo
我第一个帖子中写错了。实际上我的web.xml和HelloWorldExmaple.class 就是处于你所说的位置。
to:曹
这些程序在sample下就是可以用,等我拷到了telexmanager目录下后,就不能用了。怪啊。
所以我才会觉得是设置错了。
 
你把properties文件copy过去了没有??
 
to 曹
tomcat下的sample中没有properties文件的。
 
C:/Program Files/Apache Tomcat 4.0/webapps/examples/WEB-INF/classes>dir *.proper
ties
Volume in drive C has no label.
Volume Serial Number is 1809-5AAD
Directory of C:/Program Files/Apache Tomcat 4.0/webapps/examples/WEB-INF/classe
s
03/02/2002 06:48 AM 1,354 LocalStrings.properties
03/02/2002 06:48 AM 1,357 LocalStrings_en.properties
03/02/2002 06:48 AM 1,395 LocalStrings_es.properties
3 File(s) 4,106 bytes
0 Dir(s) 1,287,815,168 bytes free
 
<servlet>
<servlet-name>helloworld</servlet-name>
<servlet-class>telexmanager.HelloWorldExample</servlet-class>
</servlet>
………………
http://localhost:8080/telexmanager/servlet/helloworld
如果你是用JBuilder开发,请注意将/servlet/换成文件生成时的虚目录。
 
TO曹:
我昨天把HelloWorldExample中与ResourceBundle有关的都去掉
ResourceBundle rb =ResourceBundle.getBundle("LocalStrings",request.getLocale());
重新编译后,就可以正常显示了。但是原来的HelloWorldExample还是不行。
今天早上看了你的回复,把LocalStrings.properties、LocalStrings_en.properties、
LocalStrings_es.properties拷到telexmanager的classes目录下。
再试用时,果然原来的HelloWorldExample可以使用了。
多谢,多谢谢!!!
但是这三个文件起什么作用,我是一点都不知道。还请曹大侠给讲解讲解。
 
http://java.sun.com/j2se/1.4/docs/api/java/util/ResourceBundle.html
 
看了文档。开发程序的多语言版本时,用这个很方便啊。多谢指点。

今天大把地散分,是为了明天大把大把地得分。
 
后退
顶部