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

QQ登录

只需一步,快速开始

楼主: zsj5237

[结贴] 如何在流程流转结束步骤,调用自定义action

[复制链接]

67

主题

279

帖子

434

积分

中级会员

Rank: 3Rank: 3

积分
434
QQ
 楼主| 发表于 2014-11-20 11:26:26 | 显示全部楼层
本帖最后由 zsj5237 于 2014-11-20 11:44 编辑
jishuang 发表于 2014-11-20 11:03
把存储过程中的commit去掉

OK,事务搞定。
finally {
                        try {
                                if (proc != null) {
                                        proc.close();
                                }
                                if(conn != null){
                                        conn.close();
                                }
                        } catch (Exception e) {
                                e.printStackTrace();
                                System.out.println("close exception" + e.getMessage());
                        }
                }


这里总是抛异常:
java.sql.SQLException: Connection is closed.
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36133
发表于 2014-11-20 11:50:18 | 显示全部楼层
参考                public static void Transaction() {
                        java.sql.Connection conn = null;
                        java.sql.PreparedStatement pstmt = null;
                        com.justep.system.data.Transaction tx = null;
                        CallableStatement proc = null;
                        try {
                                // 取得数据库连接
                                tx = new com.justep.system.data.Transaction();
                                conn = tx.getConnection("/appdemo/test/data");
                                tx.begin();

                                // 调用存储过程insert into
                                proc = conn.prepareCall("{ call RQ_insert(?,?,?) }");                       
                                executeProcedure(proc,UUID.randomUUID().toString().toUpperCase().replaceAll("-", ""),"123","321");

                                // 调用存储过程insert into       
                                int abc = 2 / 0;
                                executeProcedure(proc,UUID.randomUUID().toString().toUpperCase().replaceAll("-", ""),"456","654");

                                tx.commit();
                         } catch (Exception ex) {                               
                                 try {
                         tx.rollback();
                 } catch (SQLException e1) {
                         // TODO Auto-generated catch block
                         e1.printStackTrace();
                 }
                     throw new RuntimeException(ex);
             } finally {
                     try {
                             if (pstmt != null) {
                                     pstmt.close();
                             }
                             if (conn != null) {
                                     conn.close();
                             }
                     } catch (SQLException e) {
                             System.out.println("##close.SQLException");
                     }
             }

                }

远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

67

主题

279

帖子

434

积分

中级会员

Rank: 3Rank: 3

积分
434
QQ
 楼主| 发表于 2014-11-20 11:58:46 | 显示全部楼层
jishuang 发表于 2014-11-20 11:50
参考                public static void Transaction() {
                        java.sql.Connection conn = null;
                        java.sql.PreparedSta ...

if (pstmt != null)
       pstmt.close();
}
pstmt这个对象没用过,现在是conn.close();报错,前面写法没改过
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36133
发表于 2014-11-20 13:42:04 | 显示全部楼层
32楼本地测试没问题,java代码跟一下看看
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

67

主题

279

帖子

434

积分

中级会员

Rank: 3Rank: 3

积分
434
QQ
 楼主| 发表于 2014-11-20 14:37:52 | 显示全部楼层
jishuang 发表于 2014-11-20 13:42
32楼本地测试没问题,java代码跟一下看看

错误就是conn.close()这句啊,其他都正常了。
只有关闭出现异常。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36133
发表于 2014-11-20 15:30:44 | 显示全部楼层
32楼已经发了本地测试的代码完全没问题
或者不要自己控事务,平台会自动关闭连接,参考
public static void Transaction() {
                java.sql.Connection conn = null;
                java.sql.PreparedStatement pstmt = null;
                com.justep.system.data.Transaction tx = null;
                CallableStatement proc = null;
                try {
                        // 取得数据库连接
                        conn = com.justep.model.ModelUtils.getConnectionInTransaction("/appdemo/test/data");

                        // 调用存储过程insert into
                        proc = conn.prepareCall("{ call RQ_insert(?,?,?) }");
                        executeProcedure(proc, UUID.randomUUID().toString().toUpperCase().replaceAll("-", ""), "123", "321");

                        // 调用存储过程insert into       
                        int abc = 2 / 0;
                        executeProcedure(proc, UUID.randomUUID().toString().toUpperCase().replaceAll("-", ""), "456", "654");
                       
                } catch (Exception ex) {
                        System.out.println("出错");
                        throw new RuntimeException(ex);
                } finally {
                        try {
                                if (pstmt != null) {
                                        pstmt.close();
                                }
                        } catch (SQLException e) {
                                System.out.println("##close.SQLException");
                        }
                }

        }

远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-20 02:27 , Processed in 0.056662 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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