1.关于request.getRealPath的出错
问题:
String filename = request.getRealPath(filename) //出了错
-------------------
错误信息:
The method getRealPath(String) from the type ServletRequest is deprecated
解决:
资料来源:http://bbs.chinaunix.net/viewthread.php?tid=383861
参看request.getRealPath的java doc:
Deprecated. As of Version 2.1 of the Java Servlet API, use ServletContext.getRealPath(java.lang.String) instead.
而在servlet中使用getServletContext.getRealPath()这个方法收到war 和non-war的影响,以及不同app server实现的影响,运气好的话,你常常会得到null,嘿嘿,比如你在weblogic上部署war文件,又调用这个方法..
推荐ServletContext.getResourceAsStream
参考资料:http://bbs.chinaunix.net/viewthread.php?tid=383861
2.关于serveletContext.getRealPath返回NULL和不同的app server返回不同的结果
resoure url:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=121&threadID=12968&start=0&tstart=0
问题:
我的应用有几个配置文本配置文件(是一些报表的模板),我放在WEB-INF下面的config目录下,我有程序
中是这样得到这个config的实际路径的
先用 serveletContext.getRealPath得到根路径,tomcat中比如是
c:\tomcat\webapp\test
然后我加上 "/WEB-INF/config/aa.config",这样得到文件的path然后进行读入,
应用在tomcat上跑是ok的,后来将war放到weblogic上,出错,原因是:
在weblogic上用getRealPath得到的是像
myserver\stage\_appsdir_test_war\test.war!\WEB-INF\config....
这样的路径,于是一直报FileNotFoundException
解决:
serveletContext.getRealPath
这个方法在不同的服务器上所获得的实现是不一样的
这种情况我也同样遇到过
建议是通过classloader来获得你配置的资源文件
context.getRealPath("/")可能返回了null,你可以输入来看看,
对一个打包的应用来说,是没有RealPath的概念的,调用getRealPath只会简单地返回null。其实,也很
好理解,一个文件被打包入了.war文件,就不存在目录结构了(虽然包中仍然存在目录结构,但这不等同
于文件系统中的目录结构)。所以,对war包中的资源是无法得到RealPath的。 Asp技~术乐园这样也就无从通过文件IO
进行读取了。
那么,如何读取war包中的资源呢?答案是使用ServletContext.getResourceAsStream
("/WEB-INF/config/aa.config")方法。
原则:基本上就是尽量使用j2ee规范中的各层次classloader来获取资源,而不是试图去找文件的绝对路
径
方法:调用this.getClass().getClassLoader().getResource("/").getPath(); 获取到classes目录的全
路径
使用:在得到classes目录的全路径后再根据字符串的截取与拼装达到你的要求即可。
WebLogic对WEB-INF目录下的文件是有访问控制的,最好不要放在这个目录下。 Asp技,术乐园
最好不要放在WEB-INF目录下。。
本文章来源于西盟软件站【www.zmke.com】详细地址:http://www.zmke.com/article/182/184/jsp/2009/2009082232876.html
分享到:
相关推荐
在从 Tomcat 移植至 WebLogic 时需要注意的几个问题: * 需要预加载 Jar 包以解决类加载问题 * 需要修改配置文件中的通配符路径 * 需要解决中文乱码问题 * 需要修改 weblogic.xml 文件以改变上下文 通过遵循以上...
### Tomcat工程迁移至WebLogic的关键步骤与注意事项 在企业级应用开发中,根据业务需求和技术选型的变化,有时需要将部署在Tomcat上的应用程序迁移到WebLogic服务器上。这一过程涉及多方面的调整与优化,确保应用能...
在Linux环境下搭建Java、Tomcat和WebLogic服务器是IT领域常见的任务,这涉及到操作系统管理、JVM配置、应用服务器的安装与部署等多个知识点。以下是对这些主题的详细讲解。 首先,我们从Java的安装开始。Java是运行...
在本文中,我们将深入探讨如何解决在Tomcat和WebLogic服务器上使用Sitemesh 3.0.1时遇到的Servlet 3.1环境下装配文件不完整的问题。 首先,Servlet 3.1是Java Servlet API的一个版本,引入了许多改进,包括异步处理...
搭建Java开发环境是每个开发者初期必须经历的步骤,本文将详细介绍如何配置Eclipse3.2.2、MyEclipse5.5、Tomcat和WebLogic的集成开发环境。 首先,Eclipse是一款广受欢迎的开源集成开发环境(IDE),它以其强大的...
Tomcat作为一个轻量级应用服务器,相比其他如JBoss、WebLogic等更大型的服务器,它的安装、配置和管理都更为简单。 2. **版本9.0.x**:Tomcat 9.0.x系列是针对Java EE 8规范进行实现的,这包括Servlet 4.0、JSP 2.3...
### 解决WebLogic时间与系统时间不一致的问题 在日常使用WebLogic服务器的过程中,我们可能会遇到WebLogic服务器显示的时间与操作系统的时间不一致的情况。虽然这种情况并不常见,但它可能会影响应用程序的正常运行...
在安装向导中,选择合适的安装路径,通常建议避免安装在系统目录下,以免与系统文件冲突。同时,可以选择创建桌面快捷方式以便于日后快速启动Tomcat。 3. **配置**:安装完成后,需要进行一些基本配置。打开Tomcat...
对于Windows用户,通常需要将Tomcat的`bin`目录添加到系统路径,这样可以从命令行任意位置执行启动脚本。配置环境变量后,可以通过运行`startup.bat`来启动Tomcat服务器,然后可以通过默认的HTTP端口8080访问Web应用...
### 新手CentOS 7 安装 JDK、Tomcat、WebLogic 及配置域 #### 一、JDK 的安装步骤详解 ##### **1. 检查服务器上的 JDK 版本** - 在安装之前,首先需要确认服务器上是否已安装了 JDK 以及其版本信息。这一步非常...
### Weblogic与Tomcat在Eclipse下的调试配置详解 #### 一、背景介绍 在软件开发过程中,尤其是在涉及大量数据库操作的应用中,开发者往往需要跟踪应用程序执行的具体SQL语句来定位问题或优化性能。本文主要介绍了...
然而,原始的Workshop可能不直接支持Tomcat 6,因为Tomcat是一个开源的Servlet容器,通常用于部署Java Servlet和JavaServer Pages(JSP)应用,与WebLogic Server的商业环境有所不同。 要让Workshop for WebLogic ...
或者,如果不想打包,也可以直接将HTML文件放置在Weblogic服务器的指定目录下,并通过管理控制台配置虚拟目录与本地路径的对应关系。 以上就是Tomcat和Weblogic部署纯HTML文件的过程解析。通过详细步骤的介绍,可以...
本节将详细介绍Tomcat 5.5.27版本在Linux环境下基于JDK 1.4.2_12的安装步骤。 ##### 1. 安装Java环境 确保系统已安装Java,并正确设置了`JAVA_HOME`环境变量。可以通过命令`echo $JAVA_HOME`来查看当前环境变量中...
- **WebLogic与其他应用服务器对比**:除了WebLogic之外,还有其他一些知名的应用服务器,例如IBM的WebSphere、Sun的GlassFish、Resin以及Apache Tomcat。这些服务器各有优势,但在企业级应用领域,WebLogic以其丰富...
在部署Java EE项目时,特别是采用SSH(Struts + Hibernate + Spring)架构的项目,在不同的应用服务器(如Tomcat、WebLogic等)上可能会遇到一系列兼容性问题。本文针对一个具体的案例进行分析——SSH项目部署在...
【Weblogic和Tomcat配置64位JDK部署】是一个关键任务,特别是在处理高并发和大数据量的应用场景中。在Windows 64位系统上,32位JDK的JVM虚拟内存最大限制为1.7GB,这可能导致内存溢出,从而影响服务器的稳定性和性能...