powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Особая проблема применения em.persist() в проекте CDI Web Project под JBoss AS 7.1
2 сообщений из 2, страница 1 из 1
Особая проблема применения em.persist() в проекте CDI Web Project под JBoss AS 7.1
    #38480763
Dutchman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!

Работаю над проектом CDI Web Project под JBoss AS 7.1.1.Final "Brontes". В качестве
БД использую MS SQL 2008. Особая проблема появилась по части применения em.persist()
в бине JSF-формы регистрации пользователя (см.функцию registry):
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
@ConversationScoped @Named
public class LoginBean implements Serializable{
	private static final long serialVersionUID = 1L;
	
	@Inject
 	private EntityManager em;

@SuppressWarnings("unchecked")
public Object registry(){
  UsersModel userModel=new UsersModel("NewUser");
  em.persist(userModel);
}


Инжектируемый EntityManager генерит эксепшн в строке функции em.persist(userModel):
Код: java
1.
2.
Caused by: javax.persistence.TransactionRequiredException: 
JBAS011469: Transaction is required to perform this operation (either use a transaction or extended persistence context)


Изыскания в Интернете ни на какие мысли не натолкнули, потому как в ранних версиях JBoss AS таких проблем
не возникало. Друзья !!! Убедительно прошу помощи в решении данной на самом деле для меня проблемы !!!
Ниже привожу контекст persistence.xml:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
	<persistence-unit name="customShop" transaction-type="JTA">
		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		<jta-data-source>java:/customShopDatasource</jta-data-source>
		<class>org.customShop.entity.UsersModel</class>
		<properties>
	         <property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/>
	         <property name="hibernate.hbm2ddl.auto"  value="update"/>
	         <property name="hibernate.show_sql" value="true"/>
	         <property name="hibernate.format_sql" value="true"/>
	         <property name="jboss.entity.manager.factory.jndi.name" value="java:/customShopEntityManagerFactory"/>
	      </properties>
	</persistence-unit>
</persistence>


... а класс адаптера EntityManager-а для инжектирования в бины:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
@SessionScoped
public class AdapterEntityManager  implements Serializable {
		private static final long serialVersionUID = 1L;

		@Produces
	    @PersistenceContext(unitName = "customShop", type = PersistenceContextType.TRANSACTION)
		private EntityManager em;
}
...
Рейтинг: 0 / 0
Особая проблема применения em.persist() в проекте CDI Web Project под JBoss AS 7.1
    #38483260
Dutchman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
... все оказалось довольно тривиально - в бине формы я не указал состояние
сеансового компонента (Stateful или Stateless):
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
@Stateful

@SessionScoped 
@Named
public class LoginBean implements Serializable{
	private static final long serialVersionUID = 1L;
	
	@Inject
 	private EntityManager em;
...

... а далее все работает как часы
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Особая проблема применения em.persist() в проекте CDI Web Project под JBoss AS 7.1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]