问题现象 主要的目录结构
index.jsp
test/test.jsp
WEB-INF/web.xml
WEB-INF/classes/MyClass.class
2个JSP里面全都调用了MyClass.class
程序内容完全相同,是复制过去改文件名的。
访问
http://127.0.0.1/index.jsp 没有任何问题
访问
http://127.0.0.1/test/test.jsp 报 ClassNotFoundException
服务器其是Tomcat 5.5
故障查找 经过程序测试,发现在/index.jsp里面包含了需要的CLASSAPTH目录,也就是 /WEB-INF/classes
而在 /test/test.jsp 里面,竟然不包含这个目录,当然也就无法访问MyClass类了
查看Tomcat/conf/server.xml, 发现如下配置
复制内容到剪贴板
代码:
<Host
appBase="e:\abc"
name="abc.123.net"
<Context
path="/"
docBase="e:\abc"
</Context>
</Host>
其中appBase 和 根的 docBase 指向了同一个目录。问题找到了
故障分析
appBase 的作用是,改目录将作为所有应用的根目录,其下面的任何一个子目录都将成为虚拟目录。
如果你把war文件放到这里,将会被自动解包,并配置成虚拟目录运行
因为每个虚拟目录都有自己独立的CLASSPATH,所以
/test/test.jsp 被服务器解析为一个独立的虚拟目录,其CLASSPATH 应该在
/test/WEB-INF/classes 里面
故障排除
原因找到了,排除很简单
1 修改appBase到默认目录 appBase="webapps" 推荐这么做
2 修改appBase 到你指定的应用目录,比如 d:\project 目录,然后把你的项目放到这个目录的子目录里面,比如
d:/project/myRoot/index.jsp
d:/project/myRoot/test/test.jsp
d:/project/myRoot/WEB-INF/web.xml
d:/project/myRoot/WEB-INF/classes/MyClass.class
然后对docBase进行修正
这样就可以了!
分享到:
相关推荐
这通常通过Java的`java.io.File`类完成,可以遍历指定路径下的所有文件和子目录,收集它们的信息,如路径、名称、是否为目录等。 2. **数据处理**:将获取到的文件信息转化为适合展示的数据结构,例如树形结构...
- 将解压后的目录中的子目录 `Web-inf` 改名为全部大写的 `WEB-INF`,这是因为 Tomcat 对文件名大小写敏感,并且要求 Web 应用程序的相关类所在的目录为 `WEB-INF` 且必须是大写。 - 重启 Tomcat 服务器后,即可在...
3. **Web应用目录结构**:JSP文件通常放置在Web应用的WEB-INF目录下的`jsp`或`views`子目录中,而相关的Java类文件则放在`WEB-INF/classes`或对应的Maven/Gradle的编译输出目录下。 4. **部署描述符**(web.xml):...
这个方法会根据父节点ID查询子节点,然后对每个子节点再次调用自身,直到所有子节点都被访问。 4. **JSP显示**:在JSP页面上,可以使用JSTL(JavaServer Pages Standard Tag Library)或EL(Expression Language)...
总结来说,实现JSP+MySQL的无限级分类目录树,主要涉及数据库设计、SQL查询、JSP编程以及递归处理。这样的系统能够灵活地管理和展示多级分类,适应各种需要层级结构的数据管理需求。在实际开发中,还可以结合前端...
标题 "eclipse+springboot+maven访问jsp页面" 涉及到的是一个常见的Java Web开发场景,其中Eclipse作为集成开发环境(IDE),Spring Boot作为应用框架,Maven作为项目构建工具,而JSP(JavaServer Pages)则用于创建...
描述中提到的“加入到webapps下的lib目录下”,这可能是提示将JSTL库移动到Eclipse的工作空间的`webapps`目录下的`lib`子目录。 2. **版本冲突**:标题中的"1.0和1.1.2"暗示可能有两个不同版本的JSTL库在项目中。...
开发者可以编写JSP页面,展示指定目录下的所有文件和子目录,这在构建文件管理系统或进行文件上传下载的Web应用时非常有用。 对于“计算机网络”部分,理解目录直读与网络的关系至关重要。在Web环境中,服务器和...
- 调用`File`对象的`list()`或`listFiles()`方法获取目录下的文件或子目录列表。 - 遍历得到的文件列表,根据需要读取文件内容或者进一步处理子目录。 - 将这些信息以HTML形式输出到页面上。 4. **安全问题** ...
这条命令会创建一个名为myapp.jar的文件,其中包含了WEB-INF/classes目录下的所有文件和子目录。这样,我们就将反编译后的JSP对应的Servlet类打包到了.jar文件中。 总结来说,JSP到Servlet的过程包括JSP预编译、...
【JSP目录直读程序详解】 JSP(JavaServer Pages)是Java平台上的一个服务器端脚本语言,用于创建动态网页。在这个特定的压缩包文件【[图片动画]JSP目录直读程序_jsp_mlzd.zip】中,我们讨论的是一个JSP应用,它...
- `.class`文件(如Java Bean、Servlet)存放在`classes`目录下,按包名创建子目录。 - `.jar`文件(如JDBC驱动)放在`lib`目录下,共用的库可以放在Tomcat的`lib`目录。 5. **JSP与JavaBean交互**: JSP页面...
- `counter.java`编译后的`.class`文件应放置于与`test.jsp`同级的目录或子目录中。 - `lyfcount.txt`文件位于`web`目录下,用于存储计数器的值。 #### 扩展知识点 - **文件读写处理**: - 在Java中,使用`...
- 解压后的目录名为`jspsmartupload`,需要将其中的`web-inf`子目录名称更改为全大写的`WEB-INF`。这是因为Tomcat服务器对文件名大小写敏感,要求相关类所在的目录名称必须为全大写。 2. **配置共享库**: - 进入...
- `webapp`目录:包含一个完整的Web应用程序结构,可能有`WEB-INF`子目录,里面可能有`web.xml`部署描述符和`lib`目录用于放置JAR文件。 - `README.txt`或其他文档:提供了运行示例的说明和指导。 要运行这个例子,...
在这个目录下,你需要创建WEB-INF子目录,以及WEB-INF下的web.xml文件。web.xml是Web应用的部署描述符,用于配置应用的各种参数。 然后,配置Servlet。在web.xml中,你需要定义Servlet,如下面的例子所示: ```xml...
使用命令行,进入`jspSmartUpload.zip`解压后的`classes`子目录,执行`jar cvf jspSmartUpload.jar com servletUpload.class servletUpload.java`命令来创建JAR包。 **jspSmartUpload组件中的常用类**: - **File类...