weblogic与tomcat服务器之间路径的问题

现在项目做的差不多了,有时间可以整理下问题,这里提到一个weblogic与tomcat服务器之间路径的问题,刚开始用的是tomcat开发,在第一次部署的时候遇到读取文件路径的问题,经理说以前遇到过好多次,解决方法就是直接写死了服务器的路径,然后找了一下获取工程路径的代码

package cn.cntomorrow.kxgk.util;

import java.io.File;
import java.net.URL;

import javax.servlet.http.HttpServletRequest;

import cn.cntomorrow.kxgk.base.ActionBase;

public class GetPath{
	private HttpServletRequest request;
	public HttpServletRequest getRequest() {
		return request;
	}

	public void setRequest(HttpServletRequest request) {
		this.request = request;
	}

	/**
	 * 通过上下文来取工程路径
	 *
	 * @return
	 * @throws Exception
	 */
	public String getAbsolutePathByContext() throws Exception {
	    String webPath = request.getSession().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
	 */
	public String getAbsolutePathByClass() throws Exception {
	    String webPath = 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;
	}
	public String getAbsolutePathByResource() throws Exception {
	    URL url = request.getSession().getServletContext().getResource("/");
	    String path = new File(url.toURI()).getAbsolutePath();
	          if (!path.endsWith("\\") && !path.endsWith("/")) {
	        path += File.separator;
	    }
	    return path;
	}  

	public String init() {
	    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) {
	        }
	    }  

	    return webPath;
	}
}

还有个问题是测试环境一定要相同,就是说weblogic的版本要相同,在做测试的时候出现的问题很不像版本的问题,可是查到最后查不出来换了个和服务器上版本相同的就好了,以后每次在部署到服务器上时,出现问题了先看版本,第一次部署经验不足,出现了数据源不一致的问题,本地是tomcat的数据源,而weblogic控制台部署启动时访问报错,表现为空指针,如果服务器是weblogic,本地不是的话,平时开发一定要考虑这个路径的问题

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-17 14:23:10

weblogic与tomcat服务器之间路径的问题的相关文章

nginx反代httpd,实现三种tomcat代理模型至后端的tomcat服务器,会话绑定的三种方式

构建tomcat集群,实现前端一台nginx反代,到后端的apache服务器,由apache负责向后端的tomcat服务器进行资源调度,这样的模式比直接用nginx反代到后端主机,tomcat服务器所受到的压力会更小,服务将会更加稳定,这样的模式是经过实践检验出来的.如果nginx直接调度到后端tomcat服务器,则只支持http和https,而不支持ajp,http与https模式的设定,可以让外来客户直接访问tomcat服务器,而不需要经过我们设置好的前端nginx的端口,这样是十分不安全的

JSP页面跳转编码设置(Tomcat服务器)

在做JSP系统时经常遇到的就是编码问题 而这个服务器可以是Tomcat.Weblogic,Tomcat服务器默认的编码为iso-8859-1,Weblogic默认的编码为UTF-8,所以程序运行时要注意编码设置 现在我们以一个jsp页面的代码,解释这些编码设置pageEncoding="UTF-8"说的是页面的编码,比如标题栏<title>还有其它内容等等 <meta http-equiv="Content-Type" content="

tomcat服务器乱码问题,tomcat与数据库之间的编码统一转换

在tomcat目录的conf目录下,修改server.xml文件,在下面截图中的位置加上URIEncoding="UTF-8"则表示tomcat编码转换为utf-8风格, 一般在前台获得相应的值后都会处理编码问题,如用String 类的转码,URLEncoder等转码以至于传到数据库不会乱码 tomcat服务器乱码问题,tomcat与数据库之间的编码统一转换

Tomcat配置虚拟路径,使上传文件与服务器及工程文件分离开

   使用Tomcat虚拟路径可以达到一个怎样的效果呢?简单说你可以把上传的文件放在你想发的任何一个地方,同时可以自己区分 下文件的类型,图片文件专门放一个地方,压缩包文件放另一个地方. 其实如何配置非常简单,这里以window环境来说明! 首先找到tomcat目录下conf目录下的server.xml文件 在server.xml文件中找到<Host></Host> 然后在其中加上这两句              <Context path="/demo/file&

Tomcat服务器与HTTP协议

Tomcat服务器与HTTP协议 一.  Tomcat服务器 1.tomcat服务器 1.web :网页,它代表的是网络上的资源.(java技术开发动态的web资源,即动态web页面,在Java中,动态web资源开发技术统称为Javaweb.) 网络的资源分为两种 1.静态资源------主要用于展示信息     html 2.动态资源------交 互                 jsp asp php 2.javaweb开发中常见的服务器. weblogic  BEA公司------它是

tomcat服务器和HTTP协议

tomcat:一个服务器的服务器软件,发布资源要用的 服务器组成: 1.服务器硬件 2.服务器软件 3.项目(一堆资源的集合) 4.资源tomcat本身是一个java程序,必须依赖jre运行eclipse是一个java开发软件,tomcat是一个服务器软件,不用每一次都去将项目部署到服务器,将其集成到eclipse 将tomcat集成到eclipse,window/Proferences/Server/Runtime Environments 部署项目: 在Servers下将项目add进Tomc

Linux下配置Tomcat服务器

Linux下配置Tomcat服务器和Windows下其实差不多,可以去官网下载安装包释放或者在线下载,只是当时下载的windows.zip文件,现在下载.tar.gz格式的即可,下面使用命令行的方式安装 还是在/usr/local下新建目录tomcat进入后用wget命令下载最新包,tomcat9.0现在已经出来了,但是为了和eclipse项目更好的兼容,建议下载tomcat8.0的最新包 下载好之后进行释放 tar -xzvf apache-tomcat-8.0.30.tar.gz 释放出来之

JavaWeb的学习--Http协议和Tomcat服务器

一.Http协议 1.什么是Http协议 HTTP,超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的    一种网络协议.所有的WWW文件都必须遵守这个标准.设计HTTP最初的目的是为  了提供一种发布和接收HTML页面的方法 2.Http协议的组成 Http协议由Http请求和Http响应组成,当在浏览器中输入网址访问某个网站时,    你的浏览器会将你的请求封装成一个Http请求发送给服务器站点,服务器接收到请    求后会组织响应数据封装成一

Tomcat服务器

常见的web服务器 1. WebLogic是BEA公司的产品,是目前应用最广泛的web服务器,支持J2EE规范(J2EE里有13种技术),商业产品,收费的.银行,证券等对并发,安全要求高的时候用,一般公司不用该服务器. 2. WebSphere  IBM公司开发的,支持J2EE规范.收费的,不过可以下载做学习用,不做商业用途时是不收费的. 3.Tomcat,apache,免费的,只支持J2EE规范的JSP以及Servlet规范,其他11种规范不支持. tomcat启动常见问题: 1.闪退,tom