程序中的很多地方需要用到request.getRealPath()或者getServletContext.getRealPath()。这个方法受到war 和non-war的影响,以及不同app server实现的影响,返回的结果往往不一样,在weblogic中会返回null。
一般的应用都会有一个或几个配置文件放在web-inf下面,getRealPaht返回null是读配置文件有很大困难。
/**
* 通过上下文来取工程路径
*
* @return
* @throws Exception
*/
private String getAbsolutePathByContext() throws Exception {
String webPath = this.getServletContext().getRealPath("/");
webPath = webPath.replaceAll("[\\\\\\/]WEB-INF[\\\\\\/]classes[\\\\\\/]?", "/");
webPath = webPath.replaceAll("[\\\\\\/]+", "/");
webPath = webPath.replaceAll("%20", " ");
if (webPath.matches("^[a-zA-Z]:.*?$")) {
} else {
webPath = "/" + webPath;
}
webPath += "/";
webPath = webPath.replaceAll("[\\\\\\/]+", "/");
return webPath;
}
/**
* 通过类路径来取工程路径
*
* @return
* @throws Exception
*/
private String getAbsolutePathByClass() throws Exception {
String webPath = this.getClass().getResource("/").getPath().replaceAll("^\\/", "");
webPath = webPath.replaceAll("[\\\\\\/]WEB-INF[\\\\\\/]classes[\\\\\\/]?", "/");
webPath = webPath.replaceAll("[\\\\\\/]+", "/");
webPath = webPath.replaceAll("%20", " ");
if (webPath.matches("^[a-zA-Z]:.*?$")) {
} else {
webPath = "/" + webPath;
}
webPath += "/";
webPath = webPath.replaceAll("[\\\\\\/]+", "/");
return webPath;
}
private String getAbsolutePathByResource() throws Exception {
URL url = this.getServletContext().getResource("/");
String path = new File(url.toURI()).getAbsolutePath();
if (!path.endsWith("\\") && !path.endsWith("/")) {
path += File.separator;
}
return path;
}
public String init() throws ServletException {
String webPath = null;
try {
webPath = getAbsolutePathByContext();
} catch (Exception e) {
}
// 在weblogic 11g 上可能无法从上下文取到工程物理路径,所以改为下面的
if (webPath == null) {
try {
webPath = getAbsolutePathByClass();
} catch (Exception e) {
}
}
if (webPath == null) {
try {
webPath = getAbsolutePathByResource();
} catch (Exception e) {
}
}
System.out.println(webPath);
return webPath;
}
在weblogic里面war通过getAbsolutePathByContext()方法获取路径为空 ,是很正常的
对一个打包的应用来说,是没有RealPath的概念的,调用getRealPath只会简单地返回null
所以可以通过上面的通过类路径来取工程路径
分享到:
相关推荐
为了解决 WebLogic 下 Oracle CLOB 类型转换的问题,可以通过反射机制来调用 `weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB` 类的 `getVendorObj()` 方法,该方法可以返回一个 `oracle.sql.CLOB` 类型的对象,从而...
WebLogic JDBC Vendor Oracle Thin Blob Jar包是专门为Oracle数据库在WebLogic应用服务器环境下提供Blob类型支持的驱动包。在Oracle数据库中,Blob(Binary Large Object)数据类型用于存储大量的二进制数据,如图像...
该jar包解决报错java.lang.NoClassDefFoundError: org/apache/james/mime4j/MimeException,亲测可用。
本篇文章将详细讲解标题中提到的`weblogic.jar`、`wlclient.jar`和`wls-api.jar`这三款核心的JAR包及其在WebLogic中的作用。 1. **weblogic.jar**: `weblogic.jar`是WebLogic Server的核心库,包含了运行WebLogic...
Oracle WebLogic Server 11g下载 Oracle WebLogic Server 10.3.1 包括两个文件: oepe11_ccjk_wls1031_linux32.bin oepe11_wls1031.exe
可以使用 HttpProxyServlet 实现单一服务转发,配置 weblogic.xml 和 web.xml 文件。例如,在 web.xml 文件中添加以下内容: ```xml <servlet-name>HttpProxyServlet</servlet-name> <servlet-class>weblogic....
2)在 startWebLogic.sh 中判断该参数,如果有,则更新内存参数,例如: ``` if [ "${MANAGERED_MEM_ARGS}" != "" ]; then MEM_ARGS="${MANAGERED_MEM_ARGS}" echo "检测到从被管 Server 来的设置内存参数:${...
/home/bea/Oracle/weblogic11g/Middleware/user_projects/domains/base_domain/startWebLogic.sh ``` - 对于通过图形界面创建的域,也可以使用相同的命令启动服务器。 #### 三、WebLogic 11g 卸载流程详解 **...
* Java EE 5 规范:WebLogic Server 11g 支持最新的 Java 平台、企业版 5 (Java EE 5) 规范及 Web 服务标准。 * 可靠性、可用性、可扩展性:WebLogic Server 11g 提供了领先的可靠性、可用性、可扩展性和业界领先的...
在描述中提到的"解决weblogic数据库连接池存储大字段所需包",意味着`weblogic.jdbc.vendor.oracle.OracleResultSet`可能包含优化大字段存储和检索的逻辑,这在处理如图像、视频等大数据类型时尤其重要。WebLogic的...
weblogic.xml配置详解.txt
<taskdef resource="weblogic.tasks" classpath="lib/ant-weblogic-1.6.jar"/> <wldeploy action="deploy" username="weblogic" password="weblogic1" adminurl="t3://localhost:7001" appname="myapp.war" source...
WebLogic Server是由Oracle公司提供的一个基于Java EE的中间件平台,用于构建、部署和管理企业级应用程序。2021年10月发布的WebLogic 10.3.6.0.211019补丁集是针对这个版本的一次重要更新,旨在提升系统性能、增强...
### Linux环境下JDK 1.7与WebLogic 11g的安装步骤 #### JDK 1.7 的安装 **1. 创建安装目录** - 命令:`mkdir /usr/Java` - 目的是为了组织JDK安装文件,确保文件系统的整洁。 **2. 解压缩JDK安装包** - 将JDK...
WebLogic 11g 多机集群配置是指在多个服务器上安装和配置 WebLogic 11g 服务器,以实现高可用性和负载均衡。在本文中,我们将详细介绍如何配置 WebLogic 11g 多机集群,包括管理服务器、受管服务器、节点管理器和...
通过在WebLogic服务器上部署SSL证书,可以保护服务器和客户端之间的数据传输安全,防止数据被截取或篡改。 根据提供的文件内容,以下为WebLogic SSL证书部署的知识点: 1. 获取SSL证书:首先需要从认证机构获取SSL...
在WebLogic Server的运营维护中,OPatch是一个关键工具,用于安装、更新和卸载Oracle产品中的补丁。"Weblogic-OPatch-13.9.4.2.5"很可能是指WebLogic Server的特定版本13.9.4.2.5所对应的OPatch更新。 OPatch全称为...
Oracle WebLogic Server 11g 是Oracle公司推出的中间件产品,它是企业级Java应用程序服务器的领导者,广泛应用于构建和部署基于Java EE 5规范和Web服务的标准的复杂业务系统。本讲座系列旨在介绍WebLogic Server 11g...
WEBLOGIC 11G密码忘记,重新初始化密码方法! WEBLOGIC 11G密码忘记,重新初始化密码方法! WEBLOGIC 11G密码忘记,重新初始化密码方法!
1. 在startWeblogic.sh脚本中添加命令,输出日志。 2. 在stopWeblogic.sh脚本中添加命令,关闭WebLogic。 通过本文档,读者可以一步一步地安装和配置WebLogic服务器,掌握WebLogic服务器的基本操作。