Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java spring和JBoss7中的jndi查找问题_Java_Spring_Jboss7.x_Datasource_Jndi - Fatal编程技术网

Java spring和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

我在我的项目中使用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 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和启用状态