将数据源连接到JBOSS EAP 6.4的Java代码:命名异常

将数据源连接到JBOSS EAP 6.4的Java代码:命名异常,jboss,jboss-eap-6,Jboss,Jboss Eap 6,我需要将为jboss eap 6.4定义的数据源连接到我的java代码 我的standalone.xml是: <datasources> <datasource jndi-name="java:jboss/datasources/mn572phOraDataSource" pool-name="OraDataSource" enabled="true" use-java-context="true"> <connect

我需要将为jboss eap 6.4定义的数据源连接到我的java代码

我的standalone.xml是:

    <datasources>
        <datasource jndi-name="java:jboss/datasources/mn572phOraDataSource" pool-name="OraDataSource" enabled="true" use-java-context="true">
            <connection-url>jdbc:oracle:thin:@test:1521:db11g</connection-url>
            <driver>h1</driver>
            <pool>
                <min-pool-size>20</min-pool-size>
                <max-pool-size>40</max-pool-size>
            </pool>
            <security>
                <user-name>userName</user-name>
                <password>password</password>
            </security>
        </datasource>
        <drivers>
            <driver name="h1" module="com.oracle">
                <datasource-class>oracle.jdbc.OracleDriver</datasource-class>
            </driver>
        </drivers>
    </datasources>
...
<subsystem xmlns="urn:jboss:domain:naming:1.4">
            <remote-naming/>
        </subsystem>
...
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
        <socket-binding name="management-native" interface="management" port="${jboss.management.native.port:7204}"/>
        <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:7203}"/>
        <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:7205}"/>
        <socket-binding name="http" port="7201"/>
        <socket-binding name="https" port="7202"/>
        <socket-binding name="ajp" port="7206"/>
        <socket-binding name="remoting" port="7207"/>
        <socket-binding name="txn-recovery-environment" port="7208"/>
        <socket-binding name="txn-status-manager" port="7209"/>
        <outbound-socket-binding name="mail-smtp">
            <remote-destination host="localhost" port="25"/>
        </outbound-socket-binding>
    </socket-binding-group>
我认为jboss-web.xml正确地连接到jboss数据源(通过更改jndi名称对其进行了测试,并给出了错误)

我已将jboss-client.jar添加到类路径:

<resources>
    <resource-root path="ojdbc6.jar"/>
<resource-root path="jboss-client.jar"/>
</resources>
<dependencies>
    <module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
任何解决这一问题的指针都将非常有用,我们将不胜感激

谢谢。

JBoss-eap-5中提供了对数据源的远程(客户端)访问,但JBoss-eap-6及更高版本中不提供


请参考

,因为无法远程访问数据源,因此我没有尝试

Context context = new InitialContext(); DataSource dataSource = (DataSource)context.lookup("java:jboss/jdbc/mn572phOraDataSource");

我试图将提供程序\u URL更改为“remote://localhost:7207“、”和“”。还尝试将查找更改为“java:jdbc/mn572-phoradatasource”、“java:comp/jdbc/mn572-phoradatasource”、“java:comp/env/jdbc/mn572-phoradatasource”,但都给出了相同的错误嗨,您真的需要远程访问数据源吗?在我的应用程序中,我尝试了以下操作:Context Context=new InitialContext();DataSource DataSource=(DataSource)context.lookup(“jdbc/mn572phOraDataSource”);System.out.println(数据源);谢谢你回复梅内塞斯。我的要求是远程连接数据源。任何与此相关的指针。好的,我阅读了一些文档,您需要将use java context=false用于数据源上的所有远程连接:。我不知道Jboss EAP 6.4的这个参数是否仍然相同。祝你好运!你好你能解决这个问题吗?我一直在尝试用Jboss eap 7实现它,但我没有得到它?
<resources>
    <resource-root path="ojdbc6.jar"/>
<resource-root path="jboss-client.jar"/>
</resources>
<dependencies>
    <module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
Caused by: javax.naming.NameNotFoundException: jdbc/mn572phOraDataSource -- service jboss.naming.context.java.jboss.exported.jdbc.mn572phOraDataSource
    at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:104)
    at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:197)
    at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:174)
    at org.jboss.naming.remote.protocol.v1.Protocol$1.handleServerMessage(Protocol.java:127) [jboss-client.jar:7.5.0.Final-redhat-21]
    at org.jboss.naming.remote.protocol.v1.RemoteNamingServerV1$MessageReciever$1.run(RemoteNamingServerV1.java:73) [jboss-client.jar:7.5.0.Final-redhat-21]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_55]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_55]
    at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_55]
Context context = new InitialContext(); DataSource dataSource = (DataSource)context.lookup("java:jboss/jdbc/mn572phOraDataSource");