Я только что портировал свое приложение, которое я разработал на NetBeans, из Glassfish 3 в JBoss 6. Мне пришлось отключить JTA , чтобы стойкость работала, но, поскольку в данный момент мне это не нужно, что-то лучшечем ничего.
Я использую управляемую контейнером безопасность и задокументировал мою конфигурацию в этом сообщении .
Я настроил свой источник данных JBoss 6, поместив mysql-ds.xml в $JBOSS_HOME\server\default\deploy
.Вот содержание:
<datasources>
<local-tx-datasource>
<jndi-name>jdbc/thor_ds</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/thor</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>mjolnir</user-name>
<password>mjolnir</password>
<exception-sorter-class-name>
org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter
</exception-sorter-class-name>
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
В отличие от Glassfish, в JBoss 6 мне приходилось явно объявлять каждый из моих классов персистентности.Вот мой постоянный XML:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="AvengersPU" transaction-type="RESOURCE_LOCAL">
<!--<persistence-unit name="AvengersPU" transaction-type="JTA">-->
<jta-data-source>java:/jdbc/thor_ds</jta-data-source>
<non-jta-data-source>java:/jdbc/thor_ds</non-jta-data-source>
<class>avenger.Grouptable</class>
<class>avenger.MyUser</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
</properties>
</persistence-unit>
</persistence>