环境:RESIN3,struts1.3.8,spring2,ibatis2.3,
调用存储过程时,显示:(网上查了,得不到解决)
只要是调用存储过程,就这样显示。soentry.xml:  <parameterMap id="swapParameters" class="map" >
 <parameter property="cuhuid" jdbcType="INTEGER" javaType="java.lang.Integer" mode="IN"/>
 <parameter property="sopoid" jdbcType="INTEGER" javaType="java.lang.Integer" mode="IN"/> 
</parameterMap>
<procedure id="cuhuoToShopo" parameterMap="swapParameters" >
{call copy_to(?,?)}
</procedure>  java source(DAO): public void confirm(HashMap paramMap) throws SQLException {
sqlMapClient.queryForObject("soentry.cuhuoToShopo", paramMap);

}错误信息:500 Servlet Exception[show] java.sql.SQLException: Callable statments not supported.javax.servlet.ServletException: com.ibatis.common.jdbc.exception.NestedSQLException:--- The error occurred in model/soentry_SqlMap.xml.  
--- The error occurred while executing query procedure.  
--- Check the {call copy_to(?,?)}.  
--- Check the SQL Statement (preparation failed).  
--- Cause: java.sql.SQLException: Callable statments not supported.
at org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:153)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:91)
at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103)
at util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:47)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:187)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:266)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:270)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:678)
at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:721)
at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:643)
at java.lang.Thread.run(Thread.java:595)
Caused by: com.ibatis.common.jdbc.exception.NestedSQLException:   
--- The error occurred in model/soentry_SqlMap.xml.  
--- The error occurred while executing query procedure.  
--- Check the {call copy_to(?,?)}.  
--- Check the SQL Statement (preparation failed).  
--- Cause: java.sql.SQLException: Callable statments not supported.
at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:185)
at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForObject(GeneralStatement.java:104)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:566)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:541)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:106)
at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:83)
at model.SoentryDAOImpl.confirm(SoentryDAOImpl.java:178)
at com.ssi.model.biz.impl.ShopoBiz.confirm(ShopoBiz.java:169)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy22.confirm(Unknown Source)
at action.CuhuoSubmitAction.confirm(CuhuoSubmitAction.java:201)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:110)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:153)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:91)
at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103)
at util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:47)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:187)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:266)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:270)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:678)
at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:721)
at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:643)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.sql.SQLException: Callable statments not supported.
at com.mysql.jdbc.Connection.prepareCall(Connection.java:1216)
......

解决方案 »

  1.   

    java.sql.SQLException: Callable statments not supported你用什么数据库,好像不支持存储过程,看看驱动包有没有问题,如果是mysql的话要5.0的驱动包,之前的mysql不支持存储过程
      

  2.   

    同意1楼,并且<procedure id="cuhuoToShopo" parameterMap="swapParameters" >
    {call copy_to(?,?)}
    </procedure>  这个?好像在xml里面需要转义,也就是要变成&amp;
    在<procedure>里面加上个"<![CDATA[ ]]>"试一下也就是变成
    <procedure id="cuhuoToShopo" parameterMap="swapParameters" >

    <![CDATA[
    {call copy_to(?,?)}
    ]]>

    </procedure>  good luck
      

  3.   

    java.sql.SQLException: Callable statments not supported :驱动包的问题。<procedure id="cuhuoToShopo" parameterMap="swapParameters" > 
    {call copy_to(?,?)} 
    </procedure>  
    这个?好像在xml里面需要转义?:没必要
      

  4.   

    转义有试了,不行,,,估计不关转义的事
    mysql-5.0.22,lib用mysql-connector-java-5.0.6-bin.jar
    用mysql-connector-java-5.1.12-bin.jar也报一样的错误存储过程直接CALL是OK的
    DELIMITER $$;
    DROP PROCEDURE IF EXISTS `soft2`.`copy_to`$$
    CREATE DEFINER=`root`@`localhost` PROCEDURE `copy_to`(IN cuhuid int,IN sopoid int)
    BEGIN
    DECLARE done INT default 0;
    DECLARE ocuhuoID INT;
    DECLARE ohuoID INT;
    DECLARE ohuoNum VARCHAR(30);
    DECLARE oamount INT;
    DECLARE otranRate INT;
    DECLARE rs CURSOR FOR SELECT cuhuoID,huoID,huoNum,amount,tranRate FROM cuentry WHERE cuhuoID=cuhuid;
    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
    OPEN rs;
    WHILE done=0 DO
    FETCH rs INTO ocuhuoID,ohuoID,ohuoNum,oamount,otranRate; 
    #IF NOT done THEN
       INSERT INTO soentry(cuhuoID,huoID,huoNum,amount,tranRate)
       VALUES(sopoid,ohuoID,ohuoNum,oamount,otranRate);
    #END IF;
    END WHILE;
    CLOSE rs;
    END$$
    DELIMITER ;$$就是想把cuentry的一些记录改一下cuhuoID再插到soentry表。。
      

  5.   

    我对ibatis不熟,不知道你的代码有没有写错
      

  6.   

    <procedure id="cuhuoToShopo" parameterMap="swapParameters" > 
    {call copy_to(?,?)} 
    </procedure> 是不是少了resultMap   ?
      

  7.   

    没有返回值的,不需要resultMap吧?
      

  8.   

    给你一个doc文件, 具体的自己看看
      

  9.   

    参数传递方式不对。IBATIS的参数传递能这样传?
    你那个MAP把参数传进来的时候,比如 name=111 ago=222,你说name对应到第1个?还是第二个?
      

  10.   

    我没用ibatis写过程序,我不太清楚,这个框架我几乎没了解过
      

  11.   

    resultClass="java.lang.Void"这样看看
      

  12.   


    这个考普。换成这个试试:
    <procedure id="cuhuoToShopo" parameterMap="swapParameters" >
    {call copy_to(#cuhuid#,#sopoid#)}
    </procedure>  good luck
      

  13.   

    [show] java.sql.SQLException: Callable statments not supported.javax.servlet.ServletException: com.ibatis.common.jdbc.exception.NestedSQLException:--- The error occurred in model/soentry_SqlMap.xml.  
    --- The error occurred while executing query procedure.  
    --- Check the {call copy_to(#cuhuid#,#sopoid#)}.  
    --- Check the SQL Statement (preparation failed).  
    --- Cause: java.sql.SQLException: Callable statments not supported.
    at org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    ........
      

  14.   

    我这样的环境:RESIN3,struts1.3.8,spring2,ibatis2.3,
    mysql-5.0.22  
    调用一简单的存储过程,也是报同样的错
    如下面这个简单的:DELIMITER $$;
    DROP PROCEDURE IF EXISTS `soft2`.`lisCity`$$
    CREATE DEFINER=`root`@`localhost` PROCEDURE `lisCity`()
    BEGIN
    SELECT * FROM city;
    END$$
    DELIMITER ;$$
      

  15.   

    Ibatis的指南
    parameterMap
    属性parameterMap的值等于一个预先定义的<parameterMap>元素的名称。parameterMap属性很少使用,更多的是使用上面的parameterClass和inline parameter(接下来会讨论)。
    注意!动态mapped statement只支持inline parameter,不支持parameter map。
    parameterMap的基本思想是定义一系列有次序的参数系列,用于匹配JDBC PreparedStatement的值符号。例如:
    <parameterMap id=”insert-product-param” class=”com.domain.Product”>
    <parameter property=”id”/>
    <parameter property=”description”/>
    </parameterMap>
    <statement id=”insertProduct” parameterMap=”insert-product-param”>
    insert into PRODUCT (PRD_ID, PRD_DESCRIPTION) values (?,?);
    </statement>
    上面的例子中,parameter map的两个参数按次序匹配SQL语句中的值符号(?)。因此,第一个“?”号将被“id”属性的值替换,而第二个“?”号将被“description”属性的值替换。Parameter Map及其选项将在以后详细讨论。
      

  16.   

    问题应该在这里,其他地方应该没有问题:
    public void confirm(HashMap paramMap) throws SQLException { 
    sqlMapClient.queryForObject("soentry.cuhuoToShopo", paramMap); 
    } 你的paramMap是否正确的put了cuhuid和sopoid,请检查下。
      

  17.   


    Map paramMap = new HashMap();
    System.out.println("cuuuuid:"+cu.getId());
    paramMap.put("cuhuid", cu.getId());
    System.out.println("sopoid:"+cuhuoid);
    paramMap.put("sopoid", new Integer(cuhuoid));
    shopoBiz.confirm(paramMap);应该是正确地put了.
    System.out.println("cuuuuid:"+cu.getId());
    System.out.println("sopoid:"+cuhuoid);
    这两句在CONSOLE看到了正常值...
      

  18.   

    其实错误信息提示了
    问题出在soentry.xml<parameterMap id="swapParameters" class="java.util.Map" >
     <parameter property="cuhuid" jdbcType="INTEGER" javaType="java.lang.Integer" mode="IN" />
     <parameter property="sopoid" jdbcType="INTEGER" javaType="java.lang.Integer" mode="IN" /> 
    </parameterMap>
    <procedure id="cuhuoToShopo" parameterMap="swapParameters" >
    {call cuSho(?,?)}
    </procedure>  
    但估计不是..我会继续搞清这个贴....
      

  19.   

    如果LZ能告诉我MYECLIPSE 7.5 如何加 ibatis的组件就更好了
      

  20.   

    http://topic.csdn.net/t/20060523/17/4773252.html
    looklook
      

  21.   

    我是用ECLIPSE的,MYECLIPSE个人觉得太麻烦了...
      

  22.   

     <parameterMap id="swapParameters" class="map" > 
    <parameter property="cuhuid" jdbcType="INTEGER" javaType="java.lang.Integer" mode="IN"/> 
    <parameter property="sopoid" jdbcType="INTEGER" javaType="java.lang.Integer" mode="IN"/> 
    </parameterMap> 
    你用map的话,上面这个不用配置,简单一点直接照这样
    <procedure id="cuhuoToShopo" parameterClass="java.util.Map" > 
    exec cuhuoToShopo #cuhuid#,#sopoid#
    </procedure>  
    参数是你的DAO在调用方法时候map的key就可以了
      

  23.   

    新进展,我直接在CuhuoSubmitAction里直接调用jdbc,得到如下错误,错误信息量减少了:500 Servlet Exception[show] java.sql.SQLException: Callable statments not supported.
    javax.servlet.ServletException: java.sql.SQLException: Callable statments
    not supported.
    at org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:153)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:91)
    at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103)
    at util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:47)
    at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87)
    at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:187)
    at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:266)
    at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:270)
    at com.caucho.server.port.TcpConnection.run(TcpConnection.java:678)
    at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:721)
    at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:643)
    at java.lang.Thread.run(Thread.java:595)
    Caused by: java.sql.SQLException: Callable statments not supported.
    at com.mysql.jdbc.Connection.prepareCall(Connection.java:1216)
    at action.CuhuoSubmitAction.confirm(CuhuoSubmitAction.java:213)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
    at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
    at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:110)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:153)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:91)
    at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103)
    at util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:47)
    at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87)
    at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:187)
    at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:266)
    at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:270)
    at com.caucho.server.port.TcpConnection.run(TcpConnection.java:678)
    at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:721)
    at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:643)
    at java.lang.Thread.run(Thread.java:595){
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import com.mysql.jdbc.CallableStatement;
    import com.mysql.jdbc.Connection;
    {
    ...
    Connection conn = getConn();
       CallableStatement cs = (CallableStatement) conn.prepareCall("{call cuSho(?,?)}");
       cs.setInt(1, cu.getId());
       cs.setInt(2, cuhuoid);    
       cs.executeUpdate();} private Connection getConn(){
    Connection conn = null;
    try {
       Class.forName("com.mysql.jdbc.Driver");
       try {
        conn = (Connection) DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/soft2?useUnicode=true&characterEncoding=utf-8","root","xxxx");
       } catch (SQLException e1) {
        e1.printStackTrace();
       }
    }
    catch (ClassNotFoundException e) {
       e.printStackTrace();
    }
    return conn; 
    }问题如在:RESIN?spring?...不清楚
      

  24.   

    晓得。。我用的是mysql,应该不是用exec吧。。
      

  25.   

    看看你的jar包里边是不是由"CallableStatement"这个类?
      

  26.   

    com.mysql.jdbc.CallableStatement;
    是有的
      

  27.   

    写了个Test直接java Test,能够成功调用存储过程!import java.sql.*;
    import com.mysql.jdbc.Driver;
    public class Test{private Connection getConn(){
    Connection conn = null;
    try {
       Class.forName("com.mysql.jdbc.Driver");
       try {
        conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/soft2?useUnicode=true&characterEncoding=utf-8","zym","whywhyl1211");
       } catch (SQLException e1) {
        e1.printStackTrace();
       }
    }
    catch (ClassNotFoundException e) {
       e.printStackTrace();
    }
    return conn; 
    } public void testC() {
    Connection conn = getConn();
    CallableStatement cs = null;
    try {
       CallableStatement cStmt = conn.prepareCall("{call cuSho(1,858)}");
       cStmt.executeUpdate();
    } catch (Exception e) {
       System.out.println("hahad" + e.getMessage());
    } finally {
       try {
        conn.close();
       } catch (Exception ex) {
        System.out.println("ex : " + ex.getMessage());
       }
    }
    } public static void main(String[] args) {
    new Test().testC();
    }
    }
    但植入程序,在CuhuoSubmitAction中: Cusho cuso=new Cusho();//调用和Test相同的程序。。
    cuso.confirm(cu.getId(), new Integer(cuhuoid));又报:Callable statments not supported(如下),怀疑是RESIN的问题了
    500 Servlet Exception[show] java.sql.SQLException: Callable statments not supported.javax.servlet.ServletException: java.sql.SQLException: Callable statments
    not supported.
    at org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:153)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:91)
    at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103)
    at util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:47)
    at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87)
    at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:187)
    at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:266)
    at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:270)
    at com.caucho.server.port.TcpConnection.run(TcpConnection.java:678)
    at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:721)
    at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:643)
    at java.lang.Thread.run(Thread.java:595)
    Caused by: java.sql.SQLException: Callable statments not supported.
    at com.mysql.jdbc.Connection.prepareCall(Connection.java:1216)
    at action.Cusho.confirm(Cusho.java:29)
    at action.CuhuoSubmitAction.confirm(CuhuoSubmitAction.java:210)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
    at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
    at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:110)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:153)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:91)
    at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103)
    at util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:47)
    at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87)
    at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:187)
    at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:266)
    at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:270)
    at com.caucho.server.port.TcpConnection.run(TcpConnection.java:678)
    at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:721)
    at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:643)
    at java.lang.Thread.run(Thread.java:595)
      

  28.   

    相同的程序,我用TOMCAT6来跑,存储过程都能正常调用Callable statments not supported,真的是RESIN的问题,至少是我用的这个RESIN3.1.6的问题。我用RESIN两三年没出过问题了。。回到TOMCAT,真好。。
      

  29.   

    肯定不是resin问题,我写了一下测试没有问题。
    ibatis-2.3.4.726
    mysql-connector-java-5.1.6-bin.jar
    Mysql Server version: 5.1.37-1ubuntu5.1 (Ubuntu);<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE sqlMapConfig     
        PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"     
        "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
    <sqlMapConfig>
        <settings
      cacheModelsEnabled="true"
      errorTracingEnabled="true"
      enhancementEnabled="true"
      classInfoCacheEnabled="true"
      lazyLoadingEnabled="true"
      maxRequests="32"
      maxSessions="15"
      maxTransactions="5"
      useStatementNamespaces="false"
             />
        <transactionManager type="JDBC">
      <dataSource type="SIMPLE">
       <property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>
       <property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:3306/ibatis"/>
       <property name="JDBC.Username" value="ibts_root"/>
       <property name="JDBC.Password" value="coffee&amp;tea"/>
      </dataSource>
     </transactionManager>
     <sqlMap resource="com/axman/Person.xml"/>
    </sqlMapConfig><?xml version="1.0" encoding="GBK"?>
    <!DOCTYPE sqlMap     
        PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"     
        "http://ibatis.apache.org/dtd/sql-map-2.dtd">
    <sqlMap>
    <parameterMap class="map" id="swapParameters">  
         <parameter property="name"  javaType="java.lang.String" jdbcType="varchar" mode="IN"/>  
         <parameter property="ago"  javaType="java.lang.Integer" jdbcType="int" mode="IN"/>  
    </parameterMap>  
    <procedure id="insertNameByProcedure" parameterMap="swapParameters">  
         {call proc_test(?,?)}   
    </procedure> 
    </sqlMap>
    Map p = new HashMap();
    p.put("name", "test001");
    p.put("ago", 1);
    String resource = "com/axman/SqlMapConfig.xml";
    Reader reader = Resources.getResourceAsReader(resource);
    SqlMapClient client = SqlMapClientBuilder.buildSqlMapClient(reader);
    client.update("insertNameByProcedure",p);
    就这些东西,成功插入,不要用queryForObject,会死等在那儿。
      

  30.   

    不是resin的问题,我特别试了一下。
    ibatis-2.3.4.726
    mysql-connector-java-5.1.6-bin.jar
    Mysql Server version: 5.1.37-1ubuntu5.1 (Ubuntu)
    这三个版本在resin下成功调用存储过程
    也是两个参数,插入操作
      

  31.   

    对,确实不是RESIN的问题。
    只是之前怎么就不行呢,现在RESIN也行呢
      

  32.   

    最新的战况:在Action中调用dao调用ibatis调用存储过程,
    CuhuoSubmitAction中:
    shopoBiz.confirm(paramMap);现在,点击页面上的“审核”按钮,能正确调用存储过程,,但页面就停了,不跳转了,,虽然看到进度条在前进TOMCAT和RESIN都一样,,,
    不过如果在CuhuoSubmitAction中,不通过DAO,ibatis,而用jdbc:   Cusho cuso=new Cusho();
       cuso.confirm(cu.getId(), new Integer(cuhuoid));
    //shopoBiz.confirm(paramMap);页面就能正常跳转,,,
      

  33.   

    “最新的战况:在Action中调用dao调用ibatis调用存储过程, 
    CuhuoSubmitAction中: 
    shopoBiz.confirm(paramMap); 现在,点击页面上的“审核”按钮,能正确调用存储过程,,但页面就停了,不跳转了,,虽然看到进度条在前进TOMCAT和RESIN都一样,,, ”页面不跳转的同时,电脑CPU平均占50%,陷在里头了???
      

  34.   

    你可能用queryForObject方法执行了一个无返回的存储过程。
    如果无返回那queryForObject可能就等了,你改成update方法执行就行了