读书人

解决JCO3只能在当前工作路径上获取JCo

发布时间: 2012-11-17 11:14:15 作者: rapoo

解决JCO3只能在当前工作路径下获取JCoDestination的问题

经过反编译SAP的JCO3的java代码,发现:JCO3在FileDestinationsDataProvider类中强制使用当前工作路径为jcoDestination的父路径,要想任意指定路径,一个较快的解决办法就是替换掉com.sap.conn.jco.rt.FileDestinationsDataProvider.java这个类,一下是此类的加强版的java代码:

?



附件里有我打包好的经过修改的JCO3的类库文件!

?

pool = JCO.getClientPoolManager().getPool(strPoolName);
if (pool == null)
{
JCO.addClientPool(strPoolName, iPoolSize, strClient, strUserName,
strPassword,
strLanguage, strHost, strSystemNumber);
pool = JCO.getClientPoolManager().getPool(strPoolName);
pool.setConnectionTimeout(60 * 1000);
pool.setMaxWaitTime(60 * 1000);
pool.setMaxConnections(iPoolSize * 2);
}
if (repository == null)
{
repository = JCO.createRepository("DefaultRepository", strPoolName);
}
}
return pool;
}

/**
* <p>Release a client</p>
* @param connection the client to release
*/
public void release(Client connection)
{
if (connection == null)
return;
try
{
JCO.releaseClient(connection);
}
catch (Exception e)
{
try
{
connection.reset();
JCO.releaseClient(connection);
}
catch (Exception e1)
{
}
}
}

}


2 楼 23号 2010-12-17 真他妈的混蛋,真打包成jar文件发布都不行。

读书人网 >软件架构设计

热点推荐