无法在春季使用weblogic服务器获取JDBC连接

时间:2016-02-22 10:43:09

标签: spring oracle weblogic11g

我使用带有weblogic服务器的spring开发一个应用程序。我正在使用spring jdbc来保存oracle数据库中的数据,而我尝试使用jdbc模板更新数据我得到了上述异常。 基于异常,我明白我需要在weblogic服务器中进行一些配置。但我无法做到这一点。 任何人都可以告诉我如何解决这个例外。 打击是我的代码。

jdbcTemplate.update("update com_tt_bpm_batch set status = 'FAILED' where  seqNo="+seqNo);

这是我的异常堆栈跟踪

org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Internal error: Cannot obtain XAConnection java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[bpm_weblogic, AdminChannelUsers, Administrators, AppTesters, CrossDomainConnectors, Deployers, Monitors, Operators, OracleSystemGroup]
    at weblogic.security.service.SecurityServiceManager.seal(SecurityServiceManager.java:833)
    at weblogic.security.service.IdentityUtility.authenticatedSubjectToIdentity(IdentityUtility.java:30)
    at weblogic.security.service.RoleManager.getRoles(RoleManager.java:183)
    at weblogic.security.service.AuthorizationManager.isAccessAllowed(AuthorizationManager.java:375)
    at weblogic.jdbc.common.internal.JDBCUtil.checkPermission(JDBCUtil.java:231)
    at weblogic.jdbc.common.internal.ConnectionPool.doAuthorizationCheck(ConnectionPool.java:543)
    at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:388)
    at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:363)
    at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:125)
    at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:77)
    at weblogic.jdbc.jta.DataSource.getXAConnectionFromPool(DataSource.java:1751)
    at weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1549)
    at weblogic.jdbc.jta.DataSource.getConnectionInternal(DataSource.java:478)
    at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:462)
    at weblogic.jdbc.common.internal.RmiDataSource.getConnectionInternal(RmiDataSource.java:512)
    at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:498)
    at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:491)
    at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:382)
    at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:521)
    at com.tcs.CompositeWriter.updateStatus(CompositeWriter.java:45)
    at com.tcs.App.run(App.java:59)
    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:597)
    at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:64)
    at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:53)
    at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:81)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
    at java.lang.Thread.run(Thread.java:662)

java.sql.SQLException: Internal error: Cannot obtain XAConnection java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[bpm_weblogic, AdminChannelUsers, Administrators, AppTesters, CrossDomainConnectors, Deployers, Monitors, Operators, OracleSystemGroup]
    at weblogic.security.service.SecurityServiceManager.seal(SecurityServiceManager.java:833)
    at weblogic.security.service.IdentityUtility.authenticatedSubjectToIdentity(IdentityUtility.java:30)
    at weblogic.security.service.RoleManager.getRoles(RoleManager.java:183)
    at weblogic.security.service.AuthorizationManager.isAccessAllowed(AuthorizationManager.java:375)
    at weblogic.jdbc.common.internal.JDBCUtil.checkPermission(JDBCUtil.java:231)
    at weblogic.jdbc.common.internal.ConnectionPool.doAuthorizationCheck(ConnectionPool.java:543)
    at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:388)
    at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:363)
    at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:125)
    at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:77)
    at weblogic.jdbc.jta.DataSource.getXAConnectionFromPool(DataSource.java:1751)
    at weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1549)
    at weblogic.jdbc.jta.DataSource.getConnectionInternal(DataSource.java:478)
    at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:462)
    at weblogic.jdbc.common.internal.RmiDataSource.getConnectionInternal(RmiDataSource.java:512)
    at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:498)
    at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:491)
    at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:382)
    at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:521)
    at com.tcs.CompositeWriter.updateStatus(CompositeWriter.java:45)
    at com.tcs.App.run(App.java:59)
    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:597)
    at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:64)
    at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:53)
    at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:81)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
    at java.lang.Thread.run(Thread.java:662)

0 个答案:

没有答案
相关问题