解决weblogic与xfire冲突(webservice在tomcat正常weblogic不正常)
xfire-jsr181-api-1.0-M1.jar与weblogic.jar冲突解决,将xfire-jsr181-api-1.0-M1.jar在weblogic.jar前加载
例如我的项目domain是gzpw_domain
那么在gzpw_domain\bin下找到setDomainEnv.cmd,对其进行编辑
将xfire-jsr181-api-1.0-M1.jar放在服务器目录下,我这里放在(D:\workspace\workspace3\gzpw\WebContent\WEB-INF\lib\xfire-jsr181-api-1.0-M1.jar
)
编辑setDomainEnv.cmd,配置xfire-jsr181-api-1.0-M1.jar环境路径,先检查CLASSPATH_xfire是否存在,这里的名字可以随意命名,但不能重复
set CLASSPATH_xfire=D:\workspace\workspace3\gzpw\WebContent\WEB-INF\lib\xfire-jsr181-api-1.0-M1.jar
然后将CLASSPATH_xfire加到classpath下
set CLASSPATH=%CLASSPATH_xfire%;%PRE_CLASSPATH%;%WEBLOGIC_CLASSPATH%;%POST_CLASSPATH%;%WLP_POST_CLASSPATH%
这样xfire-jsr181-api-1.0-M1.jar与weblogic.jar冲突就解决了,但是还有另外一个问题,就是不能传输byte[]类型数据,我这里处理的方法是,将byte[]转换成64为的字符串处理
File file = new File("D:\\sss.pdf");
// 将文件读进字节数组并返回
byte[] bytes = null;
try {
FileInputStream fis = new FileInputStream(file);
int length = fis.available();
bytes = new byte[length];
fis.read(bytes, 0, length);
fis.close();
} catch (IOException e) {
throw new RuntimeException("文件找不到", e);
}
String base64String=Base64.encode(bytes);
这样就可以传输了