我有一个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获取连接有什么区别。