ibatis+Spring+atomikos出现以下问题

lees889 2015-10-22 10:33:40
ibatis+Spring+atomikos出现以下问题:
1.环境:Eclipse+Tomcat7.0
2.单元测试,数据库连接正常;
3.以下为报错信息,三个参数均正常获取,没有参数为空情况。
Connection - {conn-100147} Connection
ServletDispatcher - Could not execute action
org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [0];
--- The error occurred in xmport/dzjc/dao/sql/jcYwlsh.xml.
--- The error occurred while executing query procedure.
--- Check the select dbo.createYWLSH(?,?,?).
--- Check the SQL Statement (preparation failed).
--- Cause: com.atomikos.datasource.ResourceException: resume for XID com.atomikos.spring.jdbc.tm0002300081com.atomikos.spring.jdbc.tm25 raised 0: unknown;
Caused by: com.atomikos.datasource.ResourceException: resume for XID com.atomikos.spring.jdbc.tm0002300081com.atomikos.spring.jdbc.tm25 raised 0: unknown
at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.translate(SQLStateSQLExceptionTranslator.java:121)
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:322)
at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:212)
at org.springframework.orm.ibatis.SqlMapClientTemplate.queryForObject(SqlMapClientTemplate.java:271)
at xmport.dzjc.dao.impl.JcYwlshDAOImpl.getYwlsh(JcYwlshDAOImpl.java:30)
at xmport.wssp.service.impl.ExamineServiceImpl.sendShouliReport(ExamineServiceImpl.java:279)
at xmport.wssp.service.impl.ExamineServiceImpl.sendJc(ExamineServiceImpl.java:1959)
at xmport.wssp.service.impl.ExamineServiceImpl.shouli(ExamineServiceImpl.java:673)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:301)
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 $Proxy13.shouli(Unknown Source)
at xmport.wssp.web.ExamineAction.shouliSave(ExamineAction.java:1273)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:300)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:166)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at xmport.wssp.web.interceptor.ExamineInterceptor.intercept(ExamineInterceptor.java:51)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:116)
at com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:272)
at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:237)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at cn.gov.fjeport.filters.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:31)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at xmport.wssp.web.interceptor.XSSFilter.doFilter(XSSFilter.java:26)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in xmport/dzjc/dao/sql/jcYwlsh.xml.
--- The error occurred while executing query procedure.
--- Check the select dbo.createYWLSH(?,?,?).
--- Check the SQL Statement (preparation failed).
--- Cause: com.atomikos.datasource.ResourceException: resume for XID com.atomikos.spring.jdbc.tm0002300081com.atomikos.spring.jdbc.tm25 raised 0: unknown
Caused by: com.atomikos.datasource.ResourceException: resume for XID com.atomikos.spring.jdbc.tm0002300081com.atomikos.spring.jdbc.tm25 raised 0: unknown
at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:188)
at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForObject(GeneralStatement.java:104)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:561)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:536)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:93)
at org.springframework.orm.ibatis.SqlMapClientTemplate$1.doInSqlMapClient(SqlMapClientTemplate.java:273)
at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:209)
... 60 more
Caused by: com.atomikos.datasource.ResourceException: resume for XID com.atomikos.spring.jdbc.tm0002300081com.atomikos.spring.jdbc.tm25 raised 0: unknown
at com.atomikos.datasource.xa.XAResourceTransaction.resume(Unknown Source)
at com.atomikos.jdbc.ConnectionProxy.invoke(Unknown Source)
at $Proxy38.prepareCall(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy$TransactionAwareInvocationHandler.invoke(TransactionAwareDataSourceProxy.java:172)
at $Proxy34.prepareCall(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.ibatis.common.jdbc.logging.ConnectionLogProxy.invoke(ConnectionLogProxy.java:54)
at $Proxy35.prepareCall(Unknown Source)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQueryProcedure(SqlExecutor.java:275)
at com.ibatis.sqlmap.engine.mapping.statement.ProcedureStatement.sqlExecuteQuery(ProcedureStatement.java:34)
at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:173)
... 66 more
...全文
308 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lees889 2015-10-22
  • 打赏
  • 举报
回复
这个才是正确的xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" >
<sqlMap namespace="jcYwlsh" >
	<parameterMap class="java.util.Map" id="getYwlshParams">
		<parameter property="ywlsh" mode="OUT"/>
    	<parameter property="spsxbh" mode="IN"/>
    	<parameter property="spsxzxbh" mode="IN"/>
    	<parameter property="yxtywlsh" mode="IN"/>
    </parameterMap>

    <procedure id="getYwlsh" parameterClass="java.util.Map" resultClass="string">
    	<![CDATA[
    	select dbo.createYWLSH(#spsxbh#,#spsxzxbh#,#yxtywlsh#)
    	]]>
    </procedure>
    
</sqlMap>
lees889 2015-10-22
  • 打赏
  • 举报
回复
xml文件如下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" >
<sqlMap namespace="jcYwlsh" >
	<parameterMap class="java.util.Map" id="getYwlshParams">
		<parameter property="ywlsh" mode="OUT"/>
    	<parameter property="spsxbh" mode="IN"/>
    	<parameter property="spsxzxbh" mode="IN"/>
    	<parameter property="yxtywlsh" mode="IN"/>
    </parameterMap>

    <procedure id="getYwlsh" parameterClass="java.util.Map" resultClass="java.util.Map">
    	<![CDATA[
    	select dbo.createYWLSH(#spsxbh#,#spsxzxbh#,#yxtywlsh#)
    	]]>
    </procedure>
    
    <select id="getDate" resultClass="string">
    	<![CDATA[
    		select getDate()
    	]]>
    </select>
    
</sqlMap>
lees889 2015-10-22
  • 打赏
  • 举报
回复
引用 5 楼 L_yqie 的回复:
[quote=引用 3 楼 lees889 的回复:] [quote=引用 2 楼 L_yqie 的回复:] 数据源的问题吧
单元测试,数据库连接都是正常的啊[/quote]  The error occurred in xmport/dzjc/dao/sql/jcYwlsh.xml.   --- The error occurred while executing query procedure.   --- Check the select dbo.createYWLSH(?,?,?).   --- Check the SQL Statement (preparation failed). [/quote] 那条语句直接在数据库执行是正常的,单元测试也是正常的
晨曦丶 2015-10-22
  • 打赏
  • 举报
回复
引用 3 楼 lees889 的回复:
[quote=引用 2 楼 L_yqie 的回复:] 数据源的问题吧
单元测试,数据库连接都是正常的啊[/quote] 那你看看是不是哪里的配置出错了吧,在这个文件里面xmport/dzjc/dao/sql/jcYwlsh.xml
晨曦丶 2015-10-22
  • 打赏
  • 举报
回复
引用 3 楼 lees889 的回复:
[quote=引用 2 楼 L_yqie 的回复:] 数据源的问题吧
单元测试,数据库连接都是正常的啊[/quote]  The error occurred in xmport/dzjc/dao/sql/jcYwlsh.xml.   --- The error occurred while executing query procedure.   --- Check the select dbo.createYWLSH(?,?,?).   --- Check the SQL Statement (preparation failed).
lees889 2015-10-22
  • 打赏
  • 举报
回复
引用 2 楼 L_yqie 的回复:
数据源的问题吧
单元测试,数据库连接都是正常的啊
晨曦丶 2015-10-22
  • 打赏
  • 举报
回复
数据源的问题吧
lees889 2015-10-22
  • 打赏
  • 举报
回复
数据库配置文件如下:

#jdbc.wssp.driverClassName          = oracle.jdbc.xa.client.OracleXADataSource
#jdbc.wssp.url                      = jdbc:oracle:thin:@192.101.106.25:1521:orcl
#jdbc.wssp.username                 = xmportwssp
#jdbc.wssp.password                 = xmportwssp
jdbc.wssp.driverClassName          = oracle.jdbc.xa.client.OracleXADataSource
jdbc.wssp.url                      = jdbc:oracle:thin:@172.16.1.248:1521:orcl
jdbc.wssp.username                 = xmwssp
jdbc.wssp.password                 = xmwssp
jdbc.wssp.poolSize                 = 10
jdbc.wssp.connectionTimeout        = 30
jdbc.wssp.validatingQuery          = SELECT 1 FROM DUAL
jdbc.wssp.testOnBorrow             = true

#jdbc.yhxt.driverClassName          = oracle.jdbc.xa.client.OracleXADataSource
#jdbc.yhxt.url                      = jdbc:oracle:thin:@192.101.106.25:1521:orcl
#jdbc.yhxt.username                 = xmportyhxt
#jdbc.yhxt.password                 = xmportyhxt
jdbc.yhxt.driverClassName          = oracle.jdbc.xa.client.OracleXADataSource
jdbc.yhxt.url                      = jdbc:oracle:thin:@172.16.1.248:1521:orcl
jdbc.yhxt.username                 = netsail
jdbc.yhxt.password                 = netsail

jdbc.yhxt.poolSize                 = 10
jdbc.yhxt.connectionTimeout        = 30
jdbc.yhxt.validatingQuery          = SELECT 1 FROM DUAL
jdbc.yhxt.testOnBorrow             = true

#jdbc.dzjc.driverClassName          = com.microsoft.sqlserver.jdbc.SQLServerXADataSource
#jdbc.dzjc.url                      = jdbc:sqlserver://192.101.106.21:1433;databaseName=XZXK
#jdbc.dzjc.username                 = sa
#jdbc.dzjc.password                 = test
jdbc.dzjc.driverClassName          = com.microsoft.sqlserver.jdbc.SQLServerXADataSource
jdbc.dzjc.url                      = jdbc:sqlserver://127.0.0.1:1433;databaseName=XZXK
jdbc.dzjc.username                 = sa
jdbc.dzjc.password                 = 123456

jdbc.dzjc.poolSize                 = 10
jdbc.dzjc.connectionTimeout        = 300
jdbc.dzjc.validatingQuery          = SELECT 1
jdbc.dzjc.testOnBorrow             = true

#jdbc.msg.driverClassName          = com.microsoft.sqlserver.jdbc.SQLServerXADataSource
#jdbc.msg.url                      = jdbc:sqlserver://192.101.106.29:1433;databaseName=XZXK
#jdbc.msg.username                 = sa
#jdbc.msg.password                 = test
jdbc.msg.driverClassName          = com.microsoft.sqlserver.jdbc.SQLServerXADataSource
jdbc.msg.url                      = jdbc:sqlserver://127.0.0.1:1433;databaseName=XZXK
jdbc.msg.username                 = sa
jdbc.msg.password                 = 123456
jdbc.msg.poolSize                 = 10
jdbc.msg.connectionTimeout        = 300
jdbc.msg.validatingQuery          = SELECT 1
jdbc.msg.testOnBorrow             = true
是否是由于数据库变化引起的??之前数据库配置配置的环境下运行正常

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧