起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1846|回复: 2

[结贴] 一个action动作中分别用两个数据源进行数据库操作报异常

[复制链接]

52

主题

158

帖子

522

积分

高级会员

Rank: 4

积分
522
QQ
发表于 2017-6-23 15:36:28 | 显示全部楼层 |阅读模式
您好。我自己定义了个action,在这个action操作里面,有两个数据源pcapp和system,需要查询pcapp数据源里面的某个表的数据,插入system数据源里面的另一个表。经过调试,java代码正常执行完毕,前台提示:Action[pcapp/pcapp_action/syncUserAction]执行失败,null。
后台错误如下:
2017-06-23 15:14:10 Action[pcapp/pcapp_action/syncUserAction]执行失败,null
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at com.justep.baas.action.Engine.execAction(Unknown Source)
        at com.justep.baas.action.Engine.execAction(Unknown Source)
        at com.justep.baas.servlet.BaasServlet.execService(Unknown Source)
        at com.justep.baas.servlet.BaasServlet.service(Unknown Source)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.util.ConcurrentModificationException
        at java.util.HashMap$HashIterator.nextNode(HashMap.java:1429)
        at java.util.HashMap$KeyIterator.next(HashMap.java:1453)
        at com.justep.baas.action.ActionContext.closeConnection(Unknown Source)
        at pcapp.Pcapp_action__do.syncUserAction(Pcapp_action__do.java:86)
        ... 20 more



进入Pcapp_action__do.java,查看86行代码如下图:
1.png


请问怎么处理?
发表于 2017-6-23 16:24:47 | 显示全部楼层
一个action执行多个动作,请假批处理
http://docs.wex5.com/wex5-server-question-list-2024/

使用
Connection conn1 = context.getConnection("pcapp");
Connection conn2 = context.getConnection("system");

获取两个connection对象 ,分别进行数据操作!

记得加上
conn1.setAutoCommit(false);
conn2.setAutoCommit(false);
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

52

主题

158

帖子

522

积分

高级会员

Rank: 4

积分
522
QQ
 楼主| 发表于 2017-6-23 17:45:59 | 显示全部楼层
好的,已解决。请揭帖
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-7-13 05:35 , Processed in 0.068182 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表