現在jboss 4.3からjboss 7.1.1(Final)に移行しています。Oracleデータソースを設定しようとしていますが、機能しません。以下は、Oracleデータソースをセットアップするために行ったことです。
1)ojdbc6-11.jarをダウンロードし、$ JBOSS_HOME/modules/com/Oracle/ojdbc6/mainフォルダーに配置しました
2)$ JBOSS_HOME/modules/com/Oracle/ojdbc6/mainの下にmodule.xmlファイルを作成し、これがファイルの内容です
<module xmlns="urn:jboss:module:1.0" name="com.Oracle.ojdbc6">
<resources>
<resource-root path="ojdbc6.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
</dependencies>
</module>
3)standalone.xml内に次のドライバーとデータソースを追加しました
<drivers>
<driiver name="Oracle" module="com.Oracle.ojdbc6">
<xa-datasource-class>Oracle.jdbc.OracleDriver</xa-datasource-class>
</driver>
</drivers>
<datasource jndi-name="Java:/Altis" pool-name="Altis" enabled="true" use-Java-context="true">
<connection-url>connurl</connection-url>
<driver>Oracle</driver>
<security>
<user-name>username</user-name>
<password>passwd</password>
</security>
</datasource>
</datasources>
しかし、warファイルをデプロイすると、次のエラーが発生します
16:54:43,281 INFO [org.jboss.as.server] (HttpManagementService-threads - 2) JBA
S015870: Deploy of deployment "altisavante.war" was rolled back with failure mes
sage {"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.na
ming.context.Java.module.altisavante.altisavante.env.Altisjboss.naming.context.j
ava.AltisMissing[jboss.naming.context.Java.module.altisavante.altisavante.env.Al
tisjboss.naming.context.Java.Altis]"]}
何か不足していますか?
これはもちろん7.1で動作するJBoss 7のデータソース設定に関するリンクです
https://community.jboss.org/wiki/DataSourceConfigurationInAS7
この例では、MySQLの例を構成しています。
これは、Oracleドライバー用に実行したものです
<datasource jndi-name="Java:/sigap_ws_receiver" pool-name="sigap_ws_receiver" enabled="true">
<connection-url>jdbc:Oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=off)(ADDRESS=(PROTOCOL=TCP)(Host=192.168.0.1)(PORT=1524))(CONNECT_DATA=(SERVICE_NAME=profepa)(SERVER=DEDICATED)))</connection-url>
<driver>com.Oracle</driver>
<pool>
<min-pool-size>3</min-pool-size>
<max-pool-size>5</max-pool-size>
</pool>
<security>
<user-name>user</user-name>
<password>pass</password>
</security>
<validation>
<exception-sorter class-name="org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter"/>
</validation>
<timeout>
<blocking-timeout-millis>5000</blocking-timeout-millis>
<idle-timeout-minutes>5</idle-timeout-minutes>
</timeout>
</datasource>
ドライバーのセクションは次のようになります。
<drivers>
<driver name="com.Oracle" module="com.Oracle">
<driver-class>Oracle.jdbc.driver.OracleDriver</driver-class>
</driver>
</drivers>
私のmodule.xmlは、jar ojdbc6.jar内の$ JBOSS_HOME\modules\com\Oracle\mainにあります。
<module xmlns="urn:jboss:module:1.0" name="com.Oracle">
<resources>
<resource-root path="ojdbc6.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
</dependencies>
</module>
これらすべての答えは私がそれを機能させるのに役立ちましたが、それらのどれも正確な解決策ではなかったので、私は私が追加すると思いました。
まず、JBoss web-console
で、またはxmlファイルでデータソースを手動で構成することで、これを実行できることに注意してください。ただし、OPが作成したエラーや、誰も気づかなかったエラーなどを回避するために、Webコンソールを介して構成することを強くお勧めします。
<drivers>
<driiver name="Oracle" module="com.Oracle.ojdbc6">
<xa-datasource-class>Oracle.jdbc.OracleDriver</xa-datasource-class>
</driver>
</drivers>
ドライバー宣言に2つのiが含まれていることに注意してください。
手動設定[非推奨]
まず、Oracle JDBCが構成されていることを確認する必要があります。
$JBOSS_HOME/modules
に移動し、まだ存在しない場合は、フォルダツリーOracle/jdbc/main
を作成します。odjbc6-11.jar
をコピーします。<module> <resources> <!-- make sure the path match the name of the file --> <resource-root path="ojdbc6-11.jar"/> </resources> <dependencies> <module name="javax.api"/> <module name="javax.transaction.api"/> </dependencies> </module>
Jdbcが構成されたので、standalone.xml
ファイルを編集して、ドライバーとデータソースのプロパティを指定する必要があります。
$JBOSS_HOME/standalone/configuration
に移動し、standalone.xmlファイルを編集します。drivers
タグを見つけ、次のようにドライバーを構成します。<driver name="Oracle" module="Oracle.jdbc"> <xa-datasource-class>Oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class> </driver>
<datasource jndi-name="Java:jboss/datasources/Altis" pool-name="Altis" enabled="true"> <connection-url>jdbc:Oracle:thin:@255.255.255.255:1521:sid</connection-url> <driver-class>Oracle.jdbc.OracleDriver</driver-class> <driver>Oracle</driver> <security> <user-name>username</user-name> <password>passwd</password> </security> </datasource>
オンライン構成[推奨]
Altis
Java:jboss/datasources/Altis
)。 JNDI名はJava:/
またはJava:jboss/
で始まる必要があることに注意してください。jdbc:Oracle:thin:@255.255.255.255:1521:sid
と入力しますEnable
をクリックします。Module.xml jarには、path="ojdbc6.jar"
はresource-rootタグ用ですが、ojdbc6-11.jarをダウンロードしたと言っています
path="ojdbc6-11.jar"
をmodule.xmlで
Jean-FrançoisSavardの手動ソリューションに加えて、jboss-deployment-structure.xmlからjarも除外しました。これが他の人を助けるかもしれないので、ここにログインするだけです。私のjboss-deployment-structure.xmlの例は以下です
enter code here
<!--exclude-subsystems>
<subsystem name="jpa" />
</exclude-subsystems-->
<!--http://mca.intranet.barclays.co.uk/confluence/display/MCA/Changes+required+in+MCA+for+aPaaS-->
<exclusions>
<module name="org.codehaus.jackson.jackson-core-asl" />
<module name="org.codehaus.jackson.jackson-mapper-asl" />
<module name="org.Apache.log4j" />
<module name="javax.persistence.api" />
<module name="org.hibernate" />
</exclusions>
<dependencies>
<module name="javax.activation.api" export="true"/>
<module name="javax.annotation.api" export="true"/>
<module name="javax.ejb.api" export="true"/>
<module name="javax.el.api" export="true"/>
<module name="javax.enterprise.api" export="true"/>
<module name="javax.enterprise.deploy.api" export="true"/>
<module name="javax.inject.api" export="true"/>
<module name="javax.interceptor.api" export="true"/>
<module name="javax.jms.api" export="true"/>
<module name="javax.jws.api" export="true"/>
<module name="javax.mail.api" export="true"/>
<module name="javax.management.j2ee.api" export="true"/>
<module name="javax.resource.api" export="true"/>
<module name="javax.rmi.api" export="true"/>
<module name="javax.security.auth.message.api" export="true"/>
<module name="javax.security.jacc.api" export="true"/>
<module name="javax.servlet.api" export="true"/>
<module name="javax.servlet.jsp.api" export="true"/>
<module name="javax.transaction.api" export="true"/>
<module name="javax.validation.api" export="true"/>
<module name="javax.ws.rs.api" export="true" services="export"/>
<module name="javax.xml.bind.api" export="true"/>
<module name="javax.xml.registry.api" export="true"/>
<module name="javax.xml.soap.api" export="true"/>
<module name="javax.xml.ws.api" export="true"/>
<module name="org.jboss.as.jmx" />
<!--module name="ibm.mq" /-->
<module name="javax.api" export="true"/>
</dependencies>
</deployment>
$ JBOSS_HOME\modules\system\layers\base\com\Oracle\ojdbc6\mainが存在し、ojdbcXX.jarとmodule.xmlがあることを確認します。module.xmlのモジュール名= "com.Oracle.ojdbc"がmodule = "comと一致する必要があります。 standalone.xmlの.Oracle.ojdbc "
例えばmodule.xml->
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="**com.Oracle.ojdbc6**">
<resources>
<resource-root path="ojdbc6.jar"/>
<!-- Insert resources here -->
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
<module name="javax.servlet.api" optional="true"/>
</dependencies>
</module>
standalone.xml -->
<datasource jndi-name="Java:/abc" pool-name="abc" enabled="true" use-Java-context="true">
<connection-url>jdbc:Oracle:thin:@localhost:1521:orcl</connection-url>
<driver>**Oracle**</driver>
<transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
<security>
<user-name>a_user</user-name>
<password>pwdXXX</password>
</security>
</datasource>
<drivers>
<driver name="**Oracle**" module="**com.Oracle.ojdbc6**">
<driver-class>Oracle.jdbc.driver.OracleDriver</driver-class>
<xa-datasource-class>Oracle.jdbc.driver.OracleDriver</xa-datasource-class>
</driver>
</driver>
JBoss ASのコンソールパネルに移動します。 adduser.batを使用して作成したユーザーのユーザー名とパスワードを入力します。次に、すべての構成に関するページが表示されます。以下の手順に従ってください:
1)プロフィールに移動
2)左側のペインからデータソースを選択します
3)次に、データソースセクションの追加ボタンをクリックします。
4)名前、JNDI名などの詳細を入力します。
5)次のボタンをクリックします
6)standalone.xmlを使用してjbossにデプロイしたドライバーを選択します
7)次のボタンをクリックします
8)詳細を入力してください...
9)[完了]をクリックします。
"データソースが正常に追加されました"というメッセージが表示されます。
それでおしまい....!!!
ドライバーのドライバークラスを<driver-class>Oracle.jdbc.OracleDriver</driver-class>
として使用してみてください