池连接失败:java.lang.SecurityException

时间:2016-04-14 12:42:11

标签: java spring weblogic

我有一个spring应用程序,并在Web逻辑服务器中创建为ear并进行部署。在我的应用程序中,我使用jndi配置了我的dataSource。在代码中,我正在获取一些记录并调用在另一台服务器上运行的oracle bpm应用程序。在我的服务器中,我有像这样的bpm服务器的跨域

type=<remote>, protocol=cross-domain-protocol, remoteHost=bpmdev_domain

这里的问题是我超越了异常。当我评论bpm部分它运行正常。但我想调用bpm方法。任何人都可以告诉我我做错了什么。我在调用bpm时错过了我的spring.xml或服务器或代码中的任何配置。

这是我的异常堆栈跟踪

org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Pool connect failed : java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[bpm_weblogic1, AdminChannelUsers, Administrators, AppTesters, CrossDomainConnectors, Deployers, Monitors, Operators, OracleSystemGroup, keyStoreRole]

这是我的spring.xml

 <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="MCDataSource"/>
   <!--  <property name="jndiTemplate" ref="dsJndiTemplate" /> -->
    </bean> 
      <jee:jndi-lookup id="dataSource" jndi-name="MCDataSource"/>
    <bean id="txManager" class="org.springframework.transaction.jta.JtaTransactionManager" />

    <bean id="transactionManager" class="org.springframework.transaction.jta.WebLogicJtaTransactionManager">
 <property name="transactionManagerName" value="javax.transaction.TransactionManager"/>
</bean>


 <!-- <tx:advice id="txAdvice"  transaction-manager="transactionManager">
      <tx:attributes>

      <tx:method name="*"/>


      </tx:attributes>
   </tx:advice>
     -->
   <!-- <aop:config>
      <aop:pointcut id="createOperation" 
      expression="execution(* com.tcs.controller.BpmService.*(..))"/>
      <aop:advisor advice-ref="txAdvice" pointcut-ref="createOperation"/>
   </aop:config> -->

    <!-- <bean id="dataSource2" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
    <property name="url" value="jdbc:oracle:thin:@173.19.7.200:1521/OIM.xyz.gov.in" />
    <property name="username" value="name"></property>
    <property name="password" value="pass"></property>
    <property name="initialSize" value="2" />
    <property name="maxActive" value="5" />
    </bean> -->


    <bean id="messageSource"
        class="org.springframework.context.support.ResourceBundleMessageSource">
        <property name="basename">
            <value>messages</value>
        </property>
    </bean>

  <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource" />
    </bean>  

这里,当我使用datsource2它工作正常,但与jndi它不工作。 在这里我想知道从jndi和datasource获取连接有什么区别。

0 个答案:

没有答案