昨天发的帖子可能描述的不是很清楚,今天整理了再发一次,求大师们帮忙看看,两个帖子一起结!
1,应用一datasource配置
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
org.hibernate.dialect.Oracle9Dialect
true
true
com.eka.util.MyDialect
10
50
1000
100
2
120
false
2,应用一webservice调用
public class FinanceClient {
public String serviceClient(String methodName,String xml){
try {
Configuration objConfiguration=new Configuration();
String Url=objConfiguration.getValue("finance_url");
String Qname=objConfiguration.getValue("finance_qname");
Service service = new Service();
Call call = (Call) service.createCall();
// 设置调用服务地址
call.setTargetEndpointAddress(new java.net.URL(Url));
//此处一定要配置wsdl的namespace参数 找wsdl中 wsdl:definitions标签下的targetNamespace http://webservice.myself.gzticket.gmcc.com
call.setOperationName(new QName(Qname, methodName));
//此处需要配置传入参数类型与参数名称,如果未设置jax-ws则无法接受参数,会认为传入的参数为null
call.addParameter("linkNo",org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
//如果设置类传入参数类型,此处也需要设置返回参数类型
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
call.setUseSOAPAction(true);
call.setSOAPActionURI(Url);
String result = (String) call.invoke(new Object[] { xml });
return result;
} catch (Exception e) {
e.printStackTrace();
return e.getMessage();
}
}
}
调用:new FinanceClient().serviceClient(xml);
3,应用二 datasource配置:
value="oracle.jdbc.driver.OracleDriver">
value="jdbc:oracle:thin:@192.168.249.50:1521:orcl">
4,应用二 webserivice配置
@Component
@WebService(serviceName = "financeService", endpointInterface = "com.elis.finance.webService.IFinanceManager")
public class FinanceManager implements IFinanceManager {
@Autowired
private PropJournalServiceImpl propJournalServiceImpl;
@Autowired
private BisJournalFileDirectProcess bisJournalFileDirectProcess;
public String uploadVoucherToBis(String xml) {
//调用应用二的数据库
mapper.proCreateSumVoucher();
}
}
应用二的mapper调用:
@Repository
public class PropJournalMapper {
@Autowired
private SqlSessionTemplate sessionTemplate;
public List proCreateSumVoucher() {
return sessionTemplate.selectList("com.elis.finance.mapper.PropJournalMapper.proCreateSumVoucher);
}
说明:应用一是spring1.2+hibernate3,应用二是spring3x+myibatis,现在的情况是应用一,应用二单独使用没有任何问题(或者没有发现问题),当应用一使用webservice调用应用二的方法,一段时间后或者持续并发调用后,应用一出现线程池爆膨,其他功能无法连接到数据库(处于等待状态),webservice还是可以继续调用,使用正常,当在datasource配置上添加destory方法后,问题得到解决(或者伪解决),请帮忙看看问题所在
2013年4月26日 10:56