błąd z EntityManager (?) [solved]

0

Wydaje mi się że ten fragment kodu jest odpowiedzialny za generowanie błędu.

        entityManager.getTransaction().begin();
    	entityManager.persist(a);
    	entityManager.getTransaction().commit();
 

gdzie entityManager to protected EntityManager entityManager i a to jakaś klasa wygenerowana automatycznie przez Eclpise na podstawie tabeli z MySQL
Kod błędu:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: javax.ejb.EJBException: java.lang.IllegalStateException: A JTA EntityManager cannot use getTransaction()
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)

root cause

javax.faces.el.EvaluationException: javax.ejb.EJBException: java.lang.IllegalStateException: A JTA EntityManager cannot use getTransaction()
	javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
	com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	javax.faces.component.UICommand.broadcast(UICommand.java:315)
	javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
	javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)

root cause

javax.ejb.EJBException: java.lang.IllegalStateException: A JTA EntityManager cannot use getTransaction()
	org.jboss.as.ejb3.tx.CMTTxInterceptor.handleExceptionInOurTx(CMTTxInterceptor.java:166)
	org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:230)
	org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:304)
	org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:190)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ejb3.remote.EJBRemoteTransactionPropagatingInterceptor.processInvocation(EJBRemoteTransactionPropagatingInterceptor.java:80)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:32)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
	org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:165)
	org.jboss.as.ejb3.remote.LocalEjbReceiver.processInvocation(LocalEjbReceiver.java:179)
	org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:179)
	org.jboss.ejb.client.TransactionInterceptor.handleInvocation(TransactionInterceptor.java:43)
	org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181)
	org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:128)
	org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181)
	org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:136)
	org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:121)
	org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104)
	com.sun.proxy.$Proxy22.add(Unknown Source)
	org.superbiz.jsf.CalculatorBean.add(CalculatorBean.java:58)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:606)
	org.apache.el.parser.AstValue.invoke(AstValue.java:262)
	org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
	com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
	javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
	com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	javax.faces.component.UICommand.broadcast(UICommand.java:315)
	javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
	javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)

root cause

java.lang.IllegalStateException: A JTA EntityManager cannot use getTransaction()
	org.hibernate.ejb.AbstractEntityManagerImpl.getTransaction(AbstractEntityManagerImpl.java:996)
	org.jboss.as.jpa.container.AbstractEntityManager.getTransaction(AbstractEntityManager.java:498)
	org.superbiz.jsf.CalculatorImpl.add(CalculatorImpl.java:40)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:606)
	org.jboss.as.ee.component.ManagedReferenceMethodInterceptorFactory$ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptorFactory.java:72)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53)
	org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:36)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
	org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:228)
	org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:304)
	org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:190)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ejb3.remote.EJBRemoteTransactionPropagatingInterceptor.processInvocation(EJBRemoteTransactionPropagatingInterceptor.java:80)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:32)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
	org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:165)
	org.jboss.as.ejb3.remote.LocalEjbReceiver.processInvocation(LocalEjbReceiver.java:179)
	org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:179)
	org.jboss.ejb.client.TransactionInterceptor.handleInvocation(TransactionInterceptor.java:43)
	org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181)
	org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:128)
	org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181)
	org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:136)
	org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:121)
	org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104)
	com.sun.proxy.$Proxy22.add(Unknown Source)
	org.superbiz.jsf.CalculatorBean.add(CalculatorBean.java:58)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:606)
	org.apache.el.parser.AstValue.invoke(AstValue.java:262)
	org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
	com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
	javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
	com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	javax.faces.component.UICommand.broadcast(UICommand.java:315)
	javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
	javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)

note The full stack trace of the root cause is available in the JBoss Web/7.0.13.Final logs.
JBoss Web/7.0.13.Final
 
0

Rozumiem że wg ciebie pokazanie konfiguracji której używasz jest zbędne? Bo błąd leży właśnie tam. Poza tym czemu chcesz ręcznie otwierać i zamykać transakcje? https://javaee-spec.java.net/nonav/javadocs/javax/transaction/Transactional.html

0
 
<?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="jsf-managedBean-and-ejb" transaction-type="JTA">
		<jta-data-source>java:jboss/newdatabase</jta-data-source>
		<class>model.Composer</class>
		<properties>
			<property name="hibernate.dialect" 
                  value="org.hibernate.dialect.HSQLDialect"/>
         <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
         <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
		</properties> 
	</persistence-unit>
	
</persistence>
2

Jeżeli masz transakcje z JTA w ramach kontenera EE to nie trzeba manualnie otwierać transakcji. Wystarczy oznaczyć metodę jako @Transactional i tyle.

0

Dopisanie do metody @Transactional nic nie pomogło. Teraz mam tak:

 
@Stateless
@Transactional
public class CalculatorImpl implements Calculator {

	 @PersistenceContext
	 protected EntityManager entityManager;
	 
	public double add(double x, double y) {
    	Composer a = new Composer();
    	//a.setId(1);
    	a.setForename("faf");
   
    
    	EntityManagerFactory emf = Persistence.createEntityManagerFactory("ProfessorService");
        EntityManager em = emf.createEntityManager();
        
        em.persist(a);
    	
        return x + y;
    }

}

Plik konfiguracyjny mam taki:

<?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="jsf-managedBean-and-ejb" transaction-type="JTA">
        <jta-data-source>java:jboss/newdatabase</jta-data-source>
        <class>model.Composer</class>
        <properties>
            
         <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
         <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
         <property name="hibernate.show_sql" value="false"/>
        </properties> 
    </persistence-unit>
 
</persistence> 

Błąd pojawia się taki:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: javax.ejb.EJBException: javax.persistence.PersistenceException: Invalid persistence.xml.
Error parsing XML (line-1 : column -1): cvc-elt.1: Cannot find the declaration of element 'persistence'.

	javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)

root cause

javax.faces.el.EvaluationException: javax.ejb.EJBException: javax.persistence.PersistenceException: Invalid persistence.xml.
Error parsing XML (line-1 : column -1): cvc-elt.1: Cannot find the declaration of element 'persistence'.

	javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
	com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	javax.faces.component.UICommand.broadcast(UICommand.java:315)
	javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
	javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)

root cause

javax.ejb.EJBException: javax.persistence.PersistenceException: Invalid persistence.xml.
Error parsing XML (line-1 : column -1): cvc-elt.1: Cannot find the declaration of element 'persistence'.

	org.jboss.as.ejb3.tx.CMTTxInterceptor.handleExceptionInOurTx(CMTTxInterceptor.java:166)
	org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:230)
	org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:304)
	org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:190)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ejb3.remote.EJBRemoteTransactionPropagatingInterceptor.processInvocation(EJBRemoteTransactionPropagatingInterceptor.java:80)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:32)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
	org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:165)
	org.jboss.as.ejb3.remote.LocalEjbReceiver.processInvocation(LocalEjbReceiver.java:179)
	org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:179)
	org.jboss.ejb.client.TransactionInterceptor.handleInvocation(TransactionInterceptor.java:43)
	org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181)
	org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:128)
	org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181)
	org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:136)
	org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:121)
	org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104)
	com.sun.proxy.$Proxy23.add(Unknown Source)
	org.superbiz.jsf.CalculatorBean.add(CalculatorBean.java:58)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:606)
	org.apache.el.parser.AstValue.invoke(AstValue.java:262)
	org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
	com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
	javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
	com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	javax.faces.component.UICommand.broadcast(UICommand.java:315)
	javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
	javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)

root cause

javax.persistence.PersistenceException: Invalid persistence.xml.
Error parsing XML (line-1 : column -1): cvc-elt.1: Cannot find the declaration of element 'persistence'.

	org.hibernate.ejb.packaging.PersistenceXmlLoader.loadURL(PersistenceXmlLoader.java:145)
	org.hibernate.ejb.packaging.PersistenceXmlLoader.deploy(PersistenceXmlLoader.java:169)
	org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:323)
	org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:55)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
	org.superbiz.jsf.CalculatorImpl.add(CalculatorImpl.java:44)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:606)
	org.jboss.as.ee.component.ManagedReferenceMethodInterceptorFactory$ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptorFactory.java:72)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53)
	org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:36)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
	org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:228)
	org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:304)
	org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:190)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ejb3.remote.EJBRemoteTransactionPropagatingInterceptor.processInvocation(EJBRemoteTransactionPropagatingInterceptor.java:80)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:32)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45)
	org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
	org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
	org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:165)
	org.jboss.as.ejb3.remote.LocalEjbReceiver.processInvocation(LocalEjbReceiver.java:179)
	org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:179)
	org.jboss.ejb.client.TransactionInterceptor.handleInvocation(TransactionInterceptor.java:43)
	org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181)
	org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:128)
	org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181)
	org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:136)
	org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:121)
	org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104)
	com.sun.proxy.$Proxy23.add(Unknown Source)
	org.superbiz.jsf.CalculatorBean.add(CalculatorBean.java:58)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:606)
	org.apache.el.parser.AstValue.invoke(AstValue.java:262)
	org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
	com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
	javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
	com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	javax.faces.component.UICommand.broadcast(UICommand.java:315)
	javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
	javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)

note The full stack trace of the root cause is available in the JBoss Web/7.0.13.Final logs.
JBoss Web/7.0.13.Final
 
0

To już dużo tłumaczy. EntityManager powinien zostać wstrzyknięty jako pole klasy z adnotacją @PersistanceContext bodajże (nie mam pod ręką dokumentacji).

0

Niemożliwe, ale działa :) Dziękuje!

0

Możliwe :) Poczytaj trochę tutoriale/specyfikację

0

Tu masz coś chyba nie tak, najpierw wstrzykujesz entity managera, a potem robisz to samo poprzez fabrykę. Usuń to drugie. Jeśli potrzebujesz różnych persistence unitów to wstrzyknij je za pomocą

@PersistenceUnit(name="ProfessorService") lub @PersistenceContext(name="ProfessorService")
 @PersistenceContext
     protected EntityManager entityManager;
 
    public double add(double x, double y) {
        Composer a = new Composer();
        //a.setId(1);
        a.setForename("faf");
 
 
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("ProfessorService");
        EntityManager em = emf.createEntityManager();
 
        em.persist(a);
 
        return x + y;
    }
 

1 użytkowników online, w tym zalogowanych: 0, gości: 1