jboss as 7 无法连接到 oracle 11.2.0.1.0

jboss as 7 Unable to connect to oracle 11.2.0.1.0

我在 jboss 作为 7,我定义了一个 oracle datasouce 到 oracle 11.2.0.1.0 当我使用 sql 开发人员连接到这个数据库时,它可以工作,但是 jboss 这是不可能的,我遇到了这个错误

[org.jboss.jca.core.connectionmanager.pool.strategy.OnePool] (HttpManagementService-threads - 4) IJ000604:尝试获取

时可抛出
a new connection: null: javax.resource.ResourceException: Could not create connection
    at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.getLocalManagedConnection(LocalManagedConnectionFactory.java:277) [ironjacamar-jdbc-1.0.9.Final.jar:1.0.9.Final]
    at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:235) [ironjacamar-jdbc-1.0.9.Final.jar:1.0.9.Final]
    at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool.createConnectionEventListener(SemaphoreArrayListManagedConnectionPool.java:761) [ironjacamar-core-impl-1.0.9.Final.jar:1.0.9.Final]
    at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool.getConnection(SemaphoreArrayListManagedConnectionPool.java:343) [ironjacamar-core-impl-1.0.9.Final.jar:1.0.9.Final]
    at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getSimpleConnection(AbstractPool.java:397) [ironjacamar-core-impl-1.0.9.Final.jar:1.0.9.Final]
    at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getConnection(AbstractPool.java:365) [ironjacamar-core-impl-1.0.9.Final.jar:1.0.9.Final]
    at org.jboss.jca.core.connectionmanager.pool.AbstractPool.internalTestConnection(AbstractPool.java:627) [ironjacamar-core-impl-1.0.9.Final.jar:1.0.9.Final]
    at org.jboss.jca.core.connectionmanager.pool.strategy.OnePool.testConnection(OnePool.java:88) [ironjacamar-core-impl-1.0.9.Final.jar:1.0.9.Final]
    at org.jboss.as.connector.pool.PoolOperations$TestConnectionInPool.invokeCommandOn(PoolOperations.java:121) [jboss-as-connector-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.as.connector.pool.PoolOperations.execute(PoolOperations.java:60) [jboss-as-connector-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:385) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:272) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.as.controller.AbstractOperationContext.completeStep(AbstractOperationContext.java:200) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.as.connector.pool.PoolOperations.execute(PoolOperations.java:74) [jboss-as-connector-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:385) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:272) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.as.controller.AbstractOperationContext.completeStep(AbstractOperationContext.java:200) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.as.controller.ModelControllerImpl$DefaultPrepareStepHandler.execute(ModelControllerImpl.java:466) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:385) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:272) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.as.controller.AbstractOperationContext.completeStep(AbstractOperationContext.java:200) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.as.controller.ModelControllerImpl.execute(ModelControllerImpl.java:121) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.as.controller.ModelControllerImpl.execute(ModelControllerImpl.java:309) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.as.controller.ModelControllerImpl.execute(ModelControllerImpl.java:299) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.as.domain.http.server.DomainApiHandler.processRequest(DomainApiHandler.java:294)
    at org.jboss.as.domain.http.server.DomainApiHandler.doHandle(DomainApiHandler.java:201)
    at org.jboss.as.domain.http.server.DomainApiHandler.handle(DomainApiHandler.java:208)
    at org.jboss.as.domain.http.server.security.SubjectAssociationHandler.handle(SubjectAssociationHandler.java:51)
    at org.jboss.com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:78)
    at org.jboss.sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:69)
    at org.jboss.com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:81)
    at org.jboss.sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:710)
    at org.jboss.com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:78)
    at org.jboss.as.domain.http.server.RealmReadinessFilter.doFilter(RealmReadinessFilter.java:54)
    at org.jboss.com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:81)
    at org.jboss.sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:682)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_79]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_79]
    at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_79]
    at org.jboss.threads.JBossThread.run(JBossThread.java:122) [jboss-threads-2.0.0.GA.jar:2.0.0.GA]
Caused by: java.sql.SQLRecoverableException: Erreur d'E/S: The Network Adapter could not establish the connection
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:489)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:553)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:254)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:528)
    at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.getLocalManagedConnection(LocalManagedConnectionFactory.java:249) [ironjacamar-jdbc-1.0.9.Final.jar:1.0.9.Final]
    ... 39 more
Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection
    at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:439)
    at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:454)
    at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:693)
    at oracle.net.ns.NSProtocol.connect(NSProtocol.java:251)
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1140)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:340)
    ... 44 more
Caused by: java.net.SocketTimeoutException: connect timed out
    at java.net.PlainSocketImpl.socketConnect(Native Method) [rt.jar:1.7.0_79]
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) [rt.jar:1.7.0_79]
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) [rt.jar:1.7.0_79]
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) [rt.jar:1.7.0_79]
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) [rt.jar:1.7.0_79]
    at java.net.Socket.connect(Socket.java:579) [rt.jar:1.7.0_79]
    at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:149)
    at oracle.net.nt.ConnOption.connect(ConnOption.java:133)
    at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:405)
    ... 49 more

这是我的 standalone.xml

<?xml version="1.0" encoding="UTF-8"?>

-<server xmlns="urn:jboss:domain:1.2">


-<extensions>

<extension module="org.jboss.as.clustering.infinispan"/>

<extension module="org.jboss.as.configadmin"/>

<extension module="org.jboss.as.connector"/>

<extension module="org.jboss.as.deployment-scanner"/>

<extension module="org.jboss.as.ee"/>

<extension module="org.jboss.as.ejb3"/>

<extension module="org.jboss.as.jaxrs"/>

<extension module="org.jboss.as.jdr"/>

<extension module="org.jboss.as.jmx"/>

<extension module="org.jboss.as.jpa"/>

<extension module="org.jboss.as.logging"/>

<extension module="org.jboss.as.mail"/>

<extension module="org.jboss.as.naming"/>

<extension module="org.jboss.as.osgi"/>

<extension module="org.jboss.as.pojo"/>

<extension module="org.jboss.as.remoting"/>

<extension module="org.jboss.as.sar"/>

<extension module="org.jboss.as.security"/>

<extension module="org.jboss.as.threads"/>

<extension module="org.jboss.as.transactions"/>

<extension module="org.jboss.as.web"/>

<extension module="org.jboss.as.webservices"/>

<extension module="org.jboss.as.weld"/>

</extensions>


-<management>


-<security-realms>


-<security-realm name="ManagementRealm">


-<authentication>

<properties relative-to="jboss.server.config.dir" path="mgmt-users.properties"/>

</authentication>

</security-realm>


-<security-realm name="ApplicationRealm">


-<authentication>

<properties relative-to="jboss.server.config.dir" path="application-users.properties"/>

</authentication>

</security-realm>

</security-realms>


-<management-interfaces>


-<native-interface security-realm="ManagementRealm">

<socket-binding native="management-native"/>

</native-interface>


-<http-interface security-realm="ManagementRealm">

<socket-binding http="management-http"/>

</http-interface>

</management-interfaces>

</management>


-<profile>


-<subsystem xmlns="urn:jboss:domain:logging:1.1">


-<console-handler name="CONSOLE">

<level name="INFO"/>


-<formatter>

<pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>

</formatter>

</console-handler>


-<periodic-rotating-file-handler name="FILE">


-<formatter>

<pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>

</formatter>

<file relative-to="jboss.server.log.dir" path="server.log"/>

<suffix value=".yyyy-MM-dd"/>

<append value="true"/>

</periodic-rotating-file-handler>


-<logger category="com.arjuna">

<level name="WARN"/>

</logger>


-<logger category="org.apache.tomcat.util.modeler">

<level name="WARN"/>

</logger>


-<logger category="sun.rmi">

<level name="WARN"/>

</logger>


-<logger category="jacorb">

<level name="WARN"/>

</logger>


-<logger category="jacorb.config">

<level name="ERROR"/>

</logger>


-<root-logger>

<level name="INFO"/>


-<handlers>

<handler name="CONSOLE"/>

<handler name="FILE"/>

</handlers>

</root-logger>

</subsystem>

<subsystem xmlns="urn:jboss:domain:configadmin:1.0"/>


-<subsystem xmlns="urn:jboss:domain:datasources:1.0">


-<datasources>


-<datasource use-java-context="true" enabled="true" pool-name="ExampleDS" jndi-name="java:jboss/datasources/ExampleDS">

<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url>

<driver>h2</driver>


-<security>

<user-name>sa</user-name>

<password>sa</password>

</security>

</datasource>


-<datasource enabled="true" pool-name="Argos" jndi-name="java:/Argos" use-ccm="false" jta="false">

<connection-url>jdbc:oracle:thin:@10.10.61.1:1521:SID</connection-url>

<driver-class>oracle.jdbc.OracleDriver</driver-class>

<driver>OracleJDBCDriver</driver>


-<security>

<user-name>argos14</user-name>

<password>oracle</password>

</security>


-<validation>

<validate-on-match>false</validate-on-match>

<background-validation>false</background-validation>

</validation>


-<statement>

<share-prepared-statements>false</share-prepared-statements>

</statement>

</datasource>


-<drivers>


-<driver module="com.h2database.h2" name="h2">

<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>

</driver>

<driver module="com.oracle.jdbc" name="OracleJDBCDriver"/>

<driver module="org.postgresql" name="postgres"/>

</drivers>

</datasources>

</subsystem>


-<subsystem xmlns="urn:jboss:domain:deployment-scanner:1.1">

<deployment-scanner relative-to="jboss.server.base.dir" path="deployments" scan-interval="5000"/>

</subsystem>

<subsystem xmlns="urn:jboss:domain:ee:1.0"/>


-<subsystem xmlns="urn:jboss:domain:ejb3:1.2">


-<session-bean>


-<stateless>

<bean-instance-pool-ref pool-name="slsb-strict-max-pool"/>

</stateless>

<stateful cache-ref="simple" default-access-timeout="5000"/>

<singleton default-access-timeout="5000"/>

</session-bean>


-<pools>


-<bean-instance-pools>

<strict-max-pool name="slsb-strict-max-pool" instance-acquisition-timeout-unit="MINUTES" instance-acquisition-timeout="5" max-pool-size="20"/>

<strict-max-pool name="mdb-strict-max-pool" instance-acquisition-timeout-unit="MINUTES" instance-acquisition-timeout="5" max-pool-size="20"/>

</bean-instance-pools>

</pools>


-<caches>

<cache name="simple" aliases="NoPassivationCache"/>

<cache name="passivating" aliases="SimpleStatefulCache" passivation-store-ref="file"/>

</caches>


-<passivation-stores>

<file-passivation-store name="file"/>

</passivation-stores>

<async thread-pool-name="default"/>


-<timer-service thread-pool-name="default">

<data-store relative-to="jboss.server.data.dir" path="timer-service-data"/>

</timer-service>

<remote thread-pool-name="default" connector-ref="remoting-connector"/>


-<thread-pools>


-<thread-pool name="default">

<max-threads count="10"/>

<keepalive-time unit="milliseconds" time="100"/>

</thread-pool>

</thread-pools>

</subsystem>


-<subsystem xmlns="urn:jboss:domain:infinispan:1.2" default-cache-container="hibernate">


-<cache-container name="hibernate" default-cache="local-query">


-<local-cache name="entity">

<transaction mode="NON_XA"/>

<eviction max-entries="10000" strategy="LRU"/>

<expiration max-idle="100000"/>

</local-cache>


-<local-cache name="local-query">

<transaction mode="NONE"/>

<eviction max-entries="10000" strategy="LRU"/>

<expiration max-idle="100000"/>

</local-cache>


-<local-cache name="timestamps">

<transaction mode="NONE"/>

<eviction strategy="NONE"/>

</local-cache>

</cache-container>

</subsystem>

<subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/>


-<subsystem xmlns="urn:jboss:domain:jca:1.1">

<archive-validation enabled="true" fail-on-warn="false" fail-on-error="true"/>

<bean-validation enabled="true"/>


-<default-workmanager>


-<short-running-threads>

<core-threads count="50"/>

<queue-length count="50"/>

<max-threads count="50"/>

<keepalive-time unit="seconds" time="10"/>

</short-running-threads>


-<long-running-threads>

<core-threads count="50"/>

<queue-length count="50"/>

<max-threads count="50"/>

<keepalive-time unit="seconds" time="10"/>

</long-running-threads>

</default-workmanager>

<cached-connection-manager/>

</subsystem>

<subsystem xmlns="urn:jboss:domain:jdr:1.0"/>


-<subsystem xmlns="urn:jboss:domain:jmx:1.1">

<show-model value="true"/>

<remoting-connector/>

</subsystem>


-<subsystem xmlns="urn:jboss:domain:jpa:1.0">

<jpa default-datasource=""/>

</subsystem>


-<subsystem xmlns="urn:jboss:domain:mail:1.0">


-<mail-session jndi-name="java:jboss/mail/Default">

<smtp-server outbound-socket-binding-ref="mail-smtp"/>

</mail-session>

</subsystem>

<subsystem xmlns="urn:jboss:domain:naming:1.1"/>


-<subsystem xmlns="urn:jboss:domain:osgi:1.2" activation="lazy">


-<properties>

<property name="org.osgi.framework.startlevel.beginning"> 1 </property>

</properties>


-<capabilities>

<capability name="javax.servlet.api:v25"/>

<capability name="javax.transaction.api"/>

<capability name="org.apache.felix.log" startlevel="1"/>

<capability name="org.jboss.osgi.logging" startlevel="1"/>

<capability name="org.apache.felix.configadmin" startlevel="1"/>

<capability name="org.jboss.as.osgi.configadmin" startlevel="1"/>

</capabilities>

</subsystem>

<subsystem xmlns="urn:jboss:domain:pojo:1.0"/>


-<subsystem xmlns="urn:jboss:domain:remoting:1.1">

<connector name="remoting-connector" security-realm="ApplicationRealm" socket-binding="remoting"/>

</subsystem>

<subsystem xmlns="urn:jboss:domain:resource-adapters:1.0"/>

<subsystem xmlns="urn:jboss:domain:sar:1.0"/>


-<subsystem xmlns="urn:jboss:domain:security:1.1">


-<security-domains>


-<security-domain name="other" cache-type="default">


-<authentication>


-<login-module flag="optional" code="Remoting">

<module-option name="password-stacking" value="useFirstPass"/>

</login-module>


-<login-module flag="required" code="RealmUsersRoles">

<module-option name="usersProperties" value="${jboss.server.config.dir}/application-users.properties"/>

<module-option name="rolesProperties" value="${jboss.server.config.dir}/application-roles.properties"/>

<module-option name="realm" value="ApplicationRealm"/>

<module-option name="password-stacking" value="useFirstPass"/>

</login-module>

</authentication>

</security-domain>


-<security-domain name="jboss-web-policy" cache-type="default">


-<authorization>

<policy-module flag="required" code="Delegating"/>

</authorization>

</security-domain>


-<security-domain name="jboss-ejb-policy" cache-type="default">


-<authorization>

<policy-module flag="required" code="Delegating"/>

</authorization>

</security-domain>

</security-domains>

</subsystem>

<subsystem xmlns="urn:jboss:domain:threads:1.1"/>


-<subsystem xmlns="urn:jboss:domain:transactions:1.1">


-<core-environment>


-<process-id>

<uuid/>

</process-id>

</core-environment>

<recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager"/>

<coordinator-environment default-timeout="300"/>

</subsystem>


-<subsystem xmlns="urn:jboss:domain:web:1.1" native="false" default-virtual-server="default-host">

<connector name="http" socket-binding="http" scheme="http" protocol="HTTP/1.1"/>


-<virtual-server name="default-host" enable-welcome-root="true">

<alias name="localhost"/>

<alias name="example.com"/>

</virtual-server>

</subsystem>


-<subsystem xmlns="urn:jboss:domain:webservices:1.1">

<modify-wsdl-address>true</modify-wsdl-address>

<wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host>

<endpoint-config name="Standard-Endpoint-Config"/>


-<endpoint-config name="Recording-Endpoint-Config">


-<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM">

<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/>

</pre-handler-chain>

</endpoint-config>

</subsystem>

<subsystem xmlns="urn:jboss:domain:weld:1.0"/>

</profile>


-<interfaces>


-<interface name="management">

<inet-address value="${jboss.bind.address.management:127.0.0.1}"/>

</interface>


-<interface name="public">

<inet-address value="${jboss.bind.address:127.0.0.1}"/>

</interface>


-<interface name="unsecure">

<inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>

</interface>

</interfaces>


-<socket-binding-group name="standard-sockets" port-offset="${jboss.socket.binding.port-offset:0}" default-interface="public">

<socket-binding name="management-native" port="${jboss.management.native.port:9999}" interface="management"/>

<socket-binding name="management-http" port="${jboss.management.http.port:9990}" interface="management"/>

<socket-binding name="management-https" port="${jboss.management.https.port:9443}" interface="management"/>

<socket-binding name="ajp" port="8009"/>

<socket-binding name="http" port="80"/>

<socket-binding name="https" port="8443"/>

<socket-binding name="osgi-http" port="8090" interface="management"/>

<socket-binding name="remoting" port="4447"/>

<socket-binding name="txn-recovery-environment" port="4712"/>

<socket-binding name="txn-status-manager" port="4713"/>


-<outbound-socket-binding name="mail-smtp">

<remote-destination port="25" host="localhost"/>

</outbound-socket-binding>

</socket-binding-group>

</server>

和我的 module.xml

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com.oracle.jdbc">
    <resources>
        <resource-root path="ojdbc6.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
    </dependencies>
</module>

Telnet 在 1521 上正常

和sql开发者可以从同一台电脑连接

好的,我决定将 xa-datasource-class 放在 <drivers> 上 standalone.xml

<driver name="OracleJDBCDriver" module="com.oracle.jdbc">
<xa-datasource-class>oracle.jdbc.driver.OracleDriver</xa-datasource-class>

</driver>

在我的例子中,数据库用户被锁定,所以我不得不通过以下命令更改用户并且它起作用了。

命令-> alter user [username] identified by [password] account unlock;

要检查它是如何被锁定的,只需执行

  1. sqlplus 并回车
  2. 它会提示您的数据库用户名和密码输入数据库用户名和密码
  3. 然后它会告诉你账户被锁定