Weblogic10与Jolt结合使用
来源:互联网 发布:数据魔方关键词 编辑:程序博客网 时间:2024/06/11 08:26
Weblogic10与Jolt结合使用
Jolt是Bea Tuxedo自带的jar组件,在Tuxedo9.0及以后的安装过程中都可以看到安装的Jolt组件,java通过Jolt调用tuxedo服务实现外部应用之间通信。
本人根据仅根据实际操作情况,整理java通过调用weblogic jolt连接tuxedo服务,获取文件步骤如下:
1、 启动weblogic,访问console,配置相应jolt参数:
a、新建jolt连接池:
连接池名称
地址
最大连接数
最小连接数
TuxedoFilePool
//192.168.1.110:1800
10
1
b、配置启动停止类
名称
类型
ClassName
PoolManagerShutDown
shutdown
Bea.jolt.poolservlet.weblogic.PoolManagerShutDown
PoolManagerStartUp
startup
Bea.jolt.poolservlet.weblogic.PoolManagerStartUp
2、 加载配置weblogic启动加载jolt相应jar包,这个地方大家可以注意下,可以有两种方式加载对应jar包:
1) 在domian/bin目录下找到startWeblogic.sh文件在
CLASSPATH=”${SAVE_CLASSPATH}”与 SAVE_CLASSPATH之间增加如下代码:
LIB_CLASSPATH="${LIB_PATH}/joit.jar:${LIB_PATH}/joltjse.jar:${LIB_PATH}/joltwls.jar"
CLASSPATH="${LIB_CLASSPATH}:${CLASSPATH}"
export CLASSPATH
2) 直接把joit.jar、joltjse.jar、joltwls.jar三个jar包放到domain/lib目录下,本人觉得这样更方便。
同时还得注意包冲突,
如果工程总weblogic.xml配置了如下属性
<prefer-web-inf-classes>true</prefer-web-inf-classes>
则当weblogic启动时时首先加载类路径下的包,那就会和上述配置的jolt包加载存在冲突,解决冲突本人办法就是去掉工程中对应的jolt对应jar包。
3、 java代码获取jolt连接池对象处理业务,主要代码如下:
protected SessionPool initJoltPool(String poolName)throws JoltException {
Logger logger =Logger.getLogger(getClass().getName());
SessionPool joltSession;
logger.info("开始获取jolt sessionPoolManager");
SessionPoolManager sPoolManager = SessionPoolManager.poolmgr;
if (sPoolManager ==null) {
logger.info("jolt sessionPoolManager获取失败");
}
joltSession = sPoolManager.getSessionPool(poolName);
if (joltSession ==null) {
thrownew JoltException("Error intializing Jolt session pool " + poolName);
}
return joltSession;
}
public byte[] tuxedoGetFileContent(String branchId, String fileName, int isEncrypted, char nodeType, char tranType, int flagSaveAsBrch) throws JoltException, IOException {
Logger logger = Logger.getLogger(getClass().getName());
byte[] ret = null;
if (fileName.length() == 0) {
logger.error("文件名为空");
return null;
}
// 获取JOLT连接池
protectedSessionPool _joltSession = initJoltPool(_poolName);
logger.debug("start to download file from server...");
ByteArrayOutputStream fis = null;
try {
fis = new ByteArrayOutputStream();
while (true) {
DataSet indata = new DataSet();
indata.setValue("COMMAND", new Integer(FILE_DOWNLOAD));
indata.setValue("ECREPTNEED", new Integer(isEncrypted));
indata.setValue("FILE_NAME", fileName);
indata.setValue("BRANCHNO", branchId);
indata.setValue("FILE_OFFSET", new Integer(offSet));
indata.setValue("SAVEASBRCH", new Integer(flagSaveAsBrch));
byte[] in = new byte[MAX_BLOCK_SIZE];
Result outdata = _joltSession.call(fileName, indata, null);
byte[] outbuf = (byte[]) outdata.getValue("FILE_DATA", null);
if (outbuf == null || outbuf.length == 0) {
logger.debug(fileName + ":Over with offset " + offSet);
if (offSet == 0) {
debug(outdata);
}
break;
}
fis.write(outbuf);
}
logger.debug(fileName + ":Content length:" + fis.size());
ret = fis.toByteArray();
fis.close();
} catch (IOException e) {
logger.debug("传输文件失败:" + file.getAbsolutePath(), e);
throw e;
} finally {
try {
fis.close();
} catch (Exception e) {
}
}
logger.debug(fileName + ":end to download filefrom server...");
return ret;
}
4、上述步骤都没问题的话,jolt使用基本ok了,最后部署应用同时启动weblogic,登录console查看jolt连接池状态,至少会有一个连接是被active,则配置成功。
- Weblogic10与Jolt结合使用
- JOLT的配置与编程简介
- FCKEditor与ext结合使用
- Memcached 与 PHP 结合使用
- gridview与modalpopup结合使用
- SQLite与AutoCompleteTextView结合使用
- SQLite与AutoCompleteTextView结合使用
- UIScrollView与UIPageControl结合使用
- Cursor与Adapter结合使用
- $.getJSON与$.each结合使用
- xargs与cp结合使用
- Autowired与Qualifier结合使用
- sonar与maven结合使用
- soapUI与Fiddler结合使用
- git与xcode结合使用
- WorkSpace使用-与Library结合
- WorkSpace使用(与Library结合)
- ActionBar与ViewPager结合使用
- 设置Qt应用程序图标
- 母函数模板 HDU-1028
- Android string.xml 显示特殊符号
- ObjectiveC网络
- TexturePacker打包成的 plist文件的使用
- Weblogic10与Jolt结合使用
- 使用JScript设置SVN客户端hook
- struts2拦截器
- Spring学习--面向抽象编程(模拟Spring的简单实现)
- linux下的join命令使用方法
- 插入排序
- Go语言并发之美:解释其中内核、外延
- iPhone上关于相机拍照的图片的imageOrientation的问题
- 某社区新旧版首页改造前后可用性与PET分析