Java spring和JBoss7中的jndi查找问题
我在我的项目中使用Spring、JPA和JBoss7 我在jndi查找数据源时遇到以下错误,如下所示Java spring和JBoss7中的jndi查找问题,java,spring,jboss7.x,datasource,jndi,Java,Spring,Jboss7.x,Datasource,Jndi,我在我的项目中使用Spring、JPA和JBoss7 我在jndi查找数据源时遇到以下错误,如下所示 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/rulesUI]] (MSC service thread 1-4) StandardWrapper.Throwable: org.springframework.beans.factory.BeanCreationException: Error
ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/rulesUI]] (MSC service thread 1-4) StandardWrapper.Throwable: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'rulesDataSource': Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: Error looking up RuleDS, service service jboss.naming.context.java.RuleDS is not started
这是JBoss中配置数据源的standalone.xml
<datasource jndi-name="java:/RuleDS" pool-name="rule_poc_schema" enabled="true" use-java-context="true" spy="true">
<connection-url>jdbc:oracle:thin:@medicare-ins.cxgvce1cqpuy.us-east-1.rds.amazonaws.com:3306:MEDICARE</connection-url>
<driver>oracle</driver>
<security>
<user-name>APPLICATION_MEA_DEV</user-name>
<password>password</password>
</security>
</datasource>
jdbc:oracle:thin:@medicare-ins.cxgvce1cqpuy.us-east-1.rds.amazonaws.com:3306:medicare
神谕
应用程序-测量-开发
密码
在我的Spring配置文件中,我使用以下方式访问它:
<jee:jndi-lookup jndi-name="java:/RuleDS" id="rulesDataSource"/>
请帮助我。首先,我要检查日志中的以下行:
[org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-2) JBAS010400: Bound data source [java:/RuleDS]
我还使用全名:
java:jboss/datasources/MyDSName
也许是这样吧?可以这样尝试:
在Spring Context,我们有:
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:jboss-datasource" />
</bean>
在Jboss,我有这样的想法:
<datasources>
<local-tx-datasource>
<jndi-name>jboss-datasource</jndi-name>
<connection-url>jdbc:mysql://127.0.0.1:3306/shoppingDB</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>root</user-name>
<password>123456</password>
<exception-sorter-class-name>
org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter
</exception-sorter-class-name>
<metadata>
<type-mapping>MySql</type-mapping>
</metadata>
<check-valid-connection-sql>select 1</check-valid-connection-sql>
</local-tx-datasource>
</datasources>
jboss数据源
jdbc:mysql://127.0.0.1:3306/shoppingDB
com.mysql.jdbc.Driver
根
123456
org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter
MySql
选择1
确保您已经有了spring上下文jar
希望这有帮助
关于上述名称应在standalone.xml文件或spring配置文件中使用?两者都使用,但我认为情况并非如此,您可以尝试。我在jboss指南中看到了与您相同的示例。首先看看Jboss是否正确注册了它。转到管理控制台->从左侧菜单中选择运行时和数据源。您应该看到名称、JNDI和启用状态