我创建了一个JSP文件.
sample.jsp
<%@ page pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
This is jsp program
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我把它放在samplejsp
项目中.
samplejsp
`-- WebContent
`-- WEB-INF
`-- sample.jsp
Run Code Online (Sandbox Code Playgroud)
我在以下网址上打开了它.
http://localhost:8080/samplejsp/sample.jsp
但它在浏览器中显示以下错误.
404错误
请求的资源(/sample.jsp)不可用.
我正试图在我的tomcat环境中追踪配置问题.我们的生产服务器正在运行tomcat安装并从共享NFS挂载中读取战争.
但是,当我使用独立的盒子(使用它们的配置)尝试相同的战争时,我收到下面发布的错误.
有趣的是,如果我将WEB-INF/lib中的所有jar解压缩到WEB-INF/classes中,这个错误就会消失.
所以,似乎某些东西阻止了应用程序加载WEB-INF/lib路径,但我不能在我的生活中找到任何会导致这种情况的tomcat设置,因为它正在检测应用程序和配置,只是没有包括罐子.
有任何想法吗?
重度:类org.springframework.web.context.ContextLoaderListener抛出java.lang.ClassNotFoundException的错误配置应用程序监听器:org.springframework.web.context.ContextLoaderListener在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387 )在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)在org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3786)在org.apache.catalina.core.StandardContext.在org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)在org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)在org.apache开始(StandardContext.java:4342) .catalina.core.StandardHost.addChild(StandardHost.java:525)在org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:627)在org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java :553)org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)在org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)在org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)在org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent (LifecycleSupport.java:117)在org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)在org.apache.catalina.core.StandardHost.start(StandardHost.java:719)在org.apache. catalina.core.ContainerBase.start(ContainerBase.java:1045)在org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)在org.apache.catalina.core.StandardService.start(StandardService.java: 516)在org.apache.catalina.core.StandardServer.start(StandardServer.java:710)在org.apache.catalina.startup.Catalina.start(Catalina.java:578)在sun.reflect.NativeMethodAccessorImpl.invoke0(母语法)在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)在java.lang.reflect.Me thod.invoke(Method.java:597)org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)12月20日2011下午四点二十分38秒org.apache.catalina.core.StandardContext listenerStart严重:错误配置类org.springframework.security.web.session.HttpSessionEventPublisher抛出java.lang.ClassNotFoundException的应用监听器:org.springframework.security.web .session.HttpSessionEventPublisher在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)在org.apache.catalina.core .StandardContext.listenerStart(StandardContext.java:3786)在org.apache.catalina.core.StandardContext.start(StandardContext.java:4342)在org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)在org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)at org.apache.catalina.core.StandardHost.的addChild(StandardHost.java:525)在org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:627)在org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)在org.apache .catalina.startup.HostConfig.deployApps(HostConfig.java:488)在org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)在org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java :311)在org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)在org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)在org.apache.catalina.core. StandardHost.start(StandardHost.java:719)在org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)在org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)在组织.apache.catalina.core.StandardService.start(StandardService.java:516)位于org.apache.catalina.startup.Catalina.start(Catalina)的org.apache.catalina.core.StandardServer.start(StandardServer.java:710)的.java:578)在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)在java的. lang.reflect.Method.invoke(Method.java:597)org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)org.apache.catalina.startup.Bootstrap.main(Bootstrap.java: 413)
在创建多个面配置文件时,在WEB-INF之外设置faces-config.xml是正确的吗?JSF规范似乎并不十分清楚(第10.1.3节)
如果是,那么应该如何在web.xml中声明faces-config.xml?IDE生成的路径(如Eclipse/JDev)通常使用如下内容:
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/WEB-INF/faces-config1.xml</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)
现在,如果我的faces-config.xml在WEB-INF之外 - 将param-value声明为"/WebContent/WEB-INF/faces-config2.xml"是否正确?
假设我有一个Java Web项目,我需要将几个JAR放入WEB-INF/lib目录中.在Eclipse中,如果您只是将那些JAR放在那里,Eclipse会像在类路径中那样选择它们.但是,IntelliJ似乎没有.
将这些JAR添加到项目中的正确方法是什么,使它们位于标准的WEB-INF/lib目录中?
在一个简单的Java Web应用程序中,例如,假设您有一个servlet TestServlet.java.在部署描述(web.xml)中,您可以将请求映射/testpage
到TestServlet,以便在/testapplication/testpage
请求时TestServlet处理请求.例如,您可以编写"Hello World"并发送响应.
在目录结构(部署到Web服务器的应用程序)中,TestServlet.java将驻留在:
webapps\testapplication\WEB-INF\classes\com\packagename\TestClass.java
Run Code Online (Sandbox Code Playgroud)
这意味着无法使用浏览器访问此文件.(比如输入网址)
您还可以获取请求调度程序并将请求和响应对象转发到JSP文件,如.getRequestDispatcher("/test.jsp")
.但那时文件就会出现
webapps\testapplication\test.jsp
Run Code Online (Sandbox Code Playgroud)
所以连接到http:\\ server.com\test.jsp也会得到这个文件.
我想在WEB-INF文件夹中隐藏文件,因此除了我提供的映射之外,客户端无法访问它.
这样做的适当方法是什么?
我有一个嵌入式H2数据库,我想把它放在Web应用程序的WEB-INF目录中.
在JDBC URL中引用它的正确方法是什么?
理想情况下,我想要一个适用于WAR和扩展WAR(如果可能)的解决方案.
谢谢您的帮助!
仅供参考,我尝试过以下方法:
jdbc:h2:/WEB-INF/data/myDB;CIPHER=AES
Run Code Online (Sandbox Code Playgroud)
但这会导致:
org.h2.jdbc.JdbcSQLException: A file path that is implicitly relative to the current working directory is not allowed in the database URL "jdbc:h2:/WEB-INF/data/myDB;CIPHER=AES". Use an absolute path, ~/name, ./name, or the baseDir setting instead. [90011-187]
Run Code Online (Sandbox Code Playgroud)
将其更改为:jdbc:h2:./ WEB-INF/data/myDB; CIPHER = AES
导致以下错误,这清楚地表明它试图将我的数据库放在Tomcat的bin目录中,而不是我想要的真正的WEB-INF目录:
org.h2.jdbc.JdbcSQLException: Error while creating file "C:/Program Files/Apache Software Foundation/Tomcat 7.0/bin/WEB-INF" [90062-187]
Run Code Online (Sandbox Code Playgroud) 在使用hibernate的Spring 3应用程序中,哪些文件"特定"需要在WEB-INF中?我也在使用Maven.
在应用程序在生产环境中运行之前,是否需要将/ src/main/resources中的某些文件复制到WEB-INF?
谢谢!
我有一个包含数百个HTML,JavaScript和图像文件的Web应用程序.这些文件位于根目录下:
my_root--
-- html
-- js
-- images
Run Code Online (Sandbox Code Playgroud)
这些文件夹包含一些子文件夹.
出于安全原因,我需要将所有这些资源移到WEB-INF文件夹下,这样它们就无法直接访问.
目前,JSP和servlet文件已经在WEB-INF文件夹下.
对于我来说,安全地移动WEB-INF下的所有HTML/JavaScript /图像文件夹而不破坏所有链接/转发到这些文件夹中的资源并确保这些资源无法直接访问的最简单方法是什么?
我正在使用WebSphere和WebLogic服务器.
我只是"发现"我们有两个Meta-Inf文件夹...在eclipse和War文件中.
第一个是(在战争中):
/ META-INF /
第二,奇怪的是:
/ WEB-INF /类/ META-INF /
在第二个文件夹中是persistance.xml和something.taglib.xml ...
如果我将文件移动到第一个meta-inf文件夹,我会从hibernate中获取异常.
这第二个奇怪的meta-inf文件夹的目的是什么?
这是一个普通的文件夹结构吗?
我从昨天开始在网上搜索,但我似乎无法应付手头的任务。我有一个中心类 (RuntimeConfiguration),它为我的应用程序保存大约 100 个参数。这些参数取自我存储在 WEB-INF 文件夹中的 XML 文件。在我的开发箱上,我对路径进行了硬编码,但出于非常明显的原因,这不是一个有效的解决方案。
出于可移植性的原因(我的应用程序可能在 tomcat 或 jetty 上以及在 Windows 或 Unix 下执行),我希望从我的 RuntimeConfiguration 类中拥有对该文件的通用访问方式。
我知道,如果我有一个 servlet,我可以使用 getRealPath,但是 RuntimeConfiguration 不是在 servlet 上下文中启动的。它是从一个作业(一个爬虫)调用的,而该作业又通过 applicationContext.xml 从quartz 作业控制中启动。现在这似乎是我问题的核心。
谁能告诉我,如何在这种环境中获得我的 XML 的绝对路径?
我尝试了这种 ClassLoader 方法,但它给了我一个空指针异常:
ClassLoader loader = this.getClass().getClassLoader();
loader.getResource("WEB-INF");
result = loader.getSystemResource(RTCF).toString();
Run Code Online (Sandbox Code Playgroud)
我也试过
URL url = this.getClass().getClassLoader().getResource("WEB-INF");
Run Code Online (Sandbox Code Playgroud)
这也会引发空指针异常
谁能给我一个可移植的解决方案,一个适用于我的开发机器和我的应用程序部署为 WAR 文件的生产系统的解决方案???顺便说一下,该方法最多应该能够处理基于 Windows 和 Mac OS X / Unix 的系统。
提前敲定,
基督教