换了应用部署环境,读取jar包中文件遇到的问题。

程序换了个tomcat部署出现了问题,在原来的系统里好好的。最后定位问题发现是使用dom4j读取jar包中文件出现的问题,dom4j的异常是:org.dom4j.DocumentException: null Nested exception: null,经过观察发现拿到的InputStream对象为空。再追代码发现是因为JarFile压根就没有读到文件。顺手换成了当前线程上下文去读取文件,这次抛出的异常很清楚,jar文件找不到。最近经过观察发现是引文文件路径中存在空格,这是和原来系统不同的地方,去掉空格后问题解决。

顺便说说最近遇到的各种部署问题,基本上分类如下:

1、jar包冲突(比如tomcat自带的jar包和应用程序jar包的冲突);

2、部署路径问题,比如上边说的存在空格什么的;

3、tomcat版本的问题,比如涉及到URL处理相关的问题;

正式部署环境不比在IDE环境下调试那么方便,所以平时写代码时关键节点的日志一定要重视起来,否则到时候你干着急没有办法。而且,有的问题dug的情况下根本无法复现问题,比如在多线程程序的情况下。

没有什么技术含量,有时候部署程序这些环境问题让人头疼,写出来希望帮大家节省点时间。

时间: 2024-11-06 14:51:16

换了应用部署环境,读取jar包中文件遇到的问题。的相关文章

解决springboot读取jar包中文件的问题

近期在用springboot封装一些对外服务的API接口,在本机测试都很顺利,可是当我打包jar文件放到服务器上测试的时候发现了类似下面的异常信息: java.nio.file.NoSuchFileException: file:/app.jar!/BOOT-INF/classes!/xxx.properties 于是网上一番搜索,找到类似的解决方法: Properties prop = new Properties();InputStream is = this.getClass().getR

读取Jar包中的资源问题探究

最近在写一个可执行jar的程序,程序中包含了2个资源包,一个是images,一个是files.问题来了,在Eclipse里开发的时候,当用File类来获取files下面的文件时,没有任何问题.但是当程序导出为Runnable Jar时,运行程序时抛出异常,File not found.我们来一探究竟. 首先是我的工程目录结构: 程序中访问images下的图片代码: [java] view plaincopyprint? setIconImage(new ImageIcon(this.getCla

Java读取jar包资源文件

把java项目打包成jar包,如果jar包中存在资源文件需要访问,需要采取stream的形式访问,可以调用getResourceAsStream()方法,而不能采用路径的方式访问(文件已经被打到jar里面了,不符合路径的).使用getResourceAsStream()方法文件可以有两种方式存放: (1)文件存放在src的类路径下. (2)文件存放在资源文件夹下面,通过Build Path-Use as Source Folder来把普通文件夹变成资源文件夹. 如图,把testA打包成jar包,

springboot jar启动 读取jar包中相对路径文件报错

jar包启动后读取相对路径文件报异常: Caused by: java.io.FileNotFoundException: class path resource [***.***] cannot be resolved to absolute .***.jar/BOOT-INF/classes!/***.** 采用流的方式读取即可解决 // /template/template.html是resource下面的文件 String template=readfile("/template/tem

修改jar包中文件

1.查看jar中文件 jar -tvf abc.jar[待查看的文件 2.解压jar中文件 jar -xvf abc.jar a/b/c[指定待解压的jar中目录,不指定默认解压整个jar包] 3.更新jar中文件 jar -uvf agc.jar a/b/c ·1 文件夹a与agc.jar在同级目录 ·2 不指定文件夹a/b/c,默认当前目录为待更新的目标目录 ·3 覆盖更新指定目录的文件,原jar中不涉及的文件不做修改,亦不删除 例如:更新多个目录文件,(m表示包含MANIFEST.MF文件

java 从jar包中读取资源文件

在代码中读取一些资源文件(比如图片,音乐,文本等等),在集成环境(Eclipse)中运行的时候没有问题.但当打包成一个可执行的jar包(将资源文件一并打包)以后,这些资源文件找不到,如下代码:Java代码 [java] view plaincopy //源代码1: package edu.hxraid; import java.io.*; public class Resource { public  void getResource() throws IOException{ File fil

(转)java 从jar包中读取资源文件

(转)java 从jar包中读取资源文件 博客分类: java 源自:http://blog.csdn.net/b_h_l/article/details/7767829 在代码中读取一些资源文件(比如图片,音乐,文本等等),在集成环境(Eclipse)中运行的时候没有问题.但当打包成一个可执行的jar包(将资源文件一并打包)以后,这些资源文件找不到,如下代码:Java代码 [java] view plaincopy //源代码1: package edu.hxraid; import java

[Java基础] 深入jar包:从jar包中读取资源文件

转载: http://hxraid.iteye.com/blog/483115?page=3#comments 我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等).在单独运行的时候这些简单的处理当然不会有问题.但是,如果我们把代码打成一个jar包以后,即使将资源文件一并打包,这些东西也找不出来了.看看下面的代码: //源代码1: package edu.hxraid; import java.io.*; public class Resource { public void getRe

【解惑】深入jar包:从jar包中读取资源文件

我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等).在单独运行的时候这些简单的处理当然不会有问题.但是,如果我们把代码打成一个jar包以后,即使将资源文件一并打包,这些东西也找不出来了.看看下面的代码: //源代码1: package edu.hxraid; import java.io.*; public class Resource { public void getResource() throws IOException{ File file=new File("bin/res