0

我在我的项目中使用 Spring、JPA 和 JBoss 7。

在 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 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>

在我的 Spring 配置文件中,我使用以下方法访问它:

<jee:jndi-lookup jndi-name="java:/RuleDS" id="rulesDataSource"/>

请帮我。

4

2 回答 2

1

可以这样试试:

在 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>

确保你已经有 spring-context jar

希望这可以帮助,

问候

于 2015-06-06T04:21:15.260 回答
0

首先,我会检查日志中的以下行:

[org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-2) JBAS010400: Bound data source [java:/RuleDS]

我也使用全名:

java:jboss/datasources/MyDSName

也许是这样?

于 2013-04-16T18:55:17.600 回答