[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [eclipselink-users] TransactionRequiredException in JPA/JSF application
|
Did you get this resolved?
I'm getting a similar error. I even have the transaction type defined as
JTA in the persistence.xml:
<persistence-unit name="db" transaction-type="JTA">
Any ideas?
websta8 wrote:
>
> Hello everybody,
>
>
> I hope someone can solve my problem with Eclipse3.4, Glassfish v2.1
> (9.1.1) (build b60f-fcs), EclipseLink 1.0.2:
>
> My application (Eclipse dynamic web app + jpa 1.0 + jsf 1.2 facets)
> consists of a stateless session bean, one entity bean and one jsf file.
> Glassfish displays correct the jsf file with the button which is linked to
> the store function in the stateless session bean.
> When processing the line "em.persist(eb);" glassfish throws the following
> TransactionRequiredException:
>
>
> Caused by: javax.persistence.TransactionRequiredException
> at
> com.sun.enterprise.util.EntityManagerWrapper.doTxRequiredCheck(EntityManagerWrapper.java:236)
> at
> com.sun.enterprise.util.EntityManagerWrapper.doTransactionScopedTxCheck(EntityManagerWrapper.java:200)
> at
> com.sun.enterprise.util.EntityManagerWrapper.persist(EntityManagerWrapper.java:426)
> at testglassfish1.beans.ControllerBean.store(ControllerBean.java:20)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.sun.el.parser.AstValue.invoke(AstValue.java:187)
> at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
> at
> com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
> at
> javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
> ... 45 more
>
>
> Writing a JavaSE application using JPA & EclipseLink (Resource_local with
> Derby) works like a charm.
> I tried different configurations with Resource_local,
> EntityManagerFactory, with explicit starting transaction
> (em.getTransaction.begin() & commit()) etc. but it doesn't work.
>
> Any hints would be welcome!!
>
>
> thx in advance,
> websta
>
>
>
>
>
> SOURCE of SESSION BEAN
>
> @Stateless
> public class ControllerBean implements ControllerBeanInterface
> {
> @PersistenceContext
> private EntityManager em;
>
> public ControllerBean() {}
>
> public String store()
> {
> EntityBean eb = new EntityBean();
> eb.setName("name");
>
> em.persist(eb);
>
> return "SUCCESS";
> }
> }
>
>
> SOURCE of ENTITY BEAN
>
> @Entity
> public class EntityBean implements Serializable
> {
> @Id
> @GeneratedValue
> @Column(name="id")
> private BigInteger id;
>
> @Column(name="name", length = 200)
> private String name;
>
> // + setters and getters for the fields
> }
>
>
> SOURCE of PERSISTENCE.XML
>
> <?xml version="1.0" encoding="UTF-8"?>
> <persistence version="1.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_1_0.xsd">
> <persistence-unit name="testglassfish1_db" transaction-type="JTA">
> <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
> <jta-data-source>jdbc/__default</jta-data-source>
> <class>testglassfish1.beans.EntityBean</class>
> <exclude-unlisted-classes>true</exclude-unlisted-classes>
> <properties>
> <property name="eclipselink.target-server" value="SunAS9" />
> <property name="eclipselink.logging.level" value="FINEST" />
> </properties>
> </persistence-unit>
> </persistence>
>
>
> SOURCE of FACES-CONFIG.XML
>
> <?xml version="1.0" encoding="UTF-8"?>
> <faces-config
> xmlns="http://java.sun.com/xml/ns/javaee"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
> http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
> version="1.2">
> <managed-bean>
> <managed-bean-name>controller</managed-bean-name>
>
> <managed-bean-class>testglassfish1.beans.ControllerBean</managed-bean-class>
> <managed-bean-scope>request</managed-bean-scope>
> </managed-bean>
> </faces-config>
>
>
> SNIP of PAGE1.JSP
>
> <f:view>
> <h1>Page1</h1>
> <h:form>
> <h:commandButton action="#{controller.store}"
> value="save"></h:commandButton>
> <h:messages layout="table"></h:messages>
> </h:form>
> </f:view>
>
>
>
> GLASSFISH STARTUP
>
> INFO: SharedSecrets.getJavaNetAccess()=java.net.URLClassLoader$7@1c407d5
> INFO: deployed with moduleid = testglassfish1
> INFO: naming.bind
> AM FEINSTEN: property=eclipselink.logging.level; value=FINEST; translated
> value=FINEST
> AM FEINSTEN: property=eclipselink.logging.level; value=FINEST; translated
> value=FINEST
> AM FEINSTEN: Begin predeploying Persistence Unit testglassfish1_db; state
> Undeployed; factoryCount 0
> AM FEINSTEN: property=eclipselink.orm.throw.exceptions; default value=true
> AM FEINSTEN: property=eclipselink.weaving.changetracking; default
> value=true
> AM FEINSTEN: property=eclipselink.weaving.lazy; default value=true
> AM FEINSTEN: property=eclipselink.weaving.eager; default value=false
> AM FEINSTEN: property=eclipselink.weaving.fetchgroups; default value=true
> AM FEINSTEN: property=eclipselink.weaving.internal; default value=true
> FEINER: Searching for default mapping file in
> file:/D:/java/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/testglassfish1/WEB-INF/classes/
> FEINER: Found a default mapping file at
> file:/D:/java/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/testglassfish1/WEB-INF/classes/META-INF/orm.xml
> for root URL
> file:/D:/java/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/testglassfish1/WEB-INF/classes/
> FEINER: Searching for default mapping file in
> file:/D:/java/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/testglassfish1/WEB-INF/classes/
> KONFIG: The access type for the persistent class [class
> testglassfish1.beans.EntityBean] is set to PROPERTY.
> KONFIG: The alias name for the entity class [class
> testglassfish1.beans.EntityBean] is being defaulted to: EntityBean.
> KONFIG: The table name for entity [class testglassfish1.beans.EntityBean]
> is being defaulted to: ENTITYBEAN.
> FEINER: Class [testglassfish1.beans.EntityBean] registered to be processed
> by weaver.
> AM FEINSTEN: End predeploying Persistence Unit testglassfish1_db; state
> Predeployed; factoryCount 1
> INFO: Initializing Sun's JavaServer Faces implementation (1.2_04-b22-p05)
> for context '/testglassfish1'
> INFO: Selected [org.ajax4jsf.cache.LRUMapCacheFactory] cache factory
> INFO: Creating LRUMap cache instance using parameters:
> {com.sun.faces.injectionProvider=com.sun.faces.vendor.GlassFishInjectionProvider,
> com.sun.faces.validateXml=true, com.sun.faces.forceLoadConfiguration=true,
> org.ajax4jsf.VIEW_HANDLERS=com.sun.facelets.FaceletViewHandler,
> org.richfaces.SKIN=classic}
> INFO: Creating LRUMap cache instance of default capacity
> INFO: Selected [org.ajax4jsf.cache.LRUMapCacheFactory] cache factory
> INFO: Creating LRUMap cache instance using parameters:
> {com.sun.faces.injectionProvider=com.sun.faces.vendor.GlassFishInjectionProvider,
> com.sun.faces.validateXml=true, com.sun.faces.forceLoadConfiguration=true,
> org.ajax4jsf.VIEW_HANDLERS=com.sun.facelets.FaceletViewHandler,
> org.richfaces.SKIN=classic}
> INFO: Creating LRUMap cache instance of default capacity
>
>
>
> OUTPUT when button is clicked:
>
> INFO: Creating LRUMap cache instance of default capacity
> INFO: Added Library from:
> jar:file:/D:/java/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/testglassfish1/WEB-INF/lib/jsf-facelets.jar!/META-INF/jsf-core.taglib.xml
> INFO: Added Library from:
> jar:file:/D:/java/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/testglassfish1/WEB-INF/lib/jsf-facelets.jar!/META-INF/jsf-html.taglib.xml
> INFO: Added Library from:
> jar:file:/D:/java/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/testglassfish1/WEB-INF/lib/jsf-facelets.jar!/META-INF/jsf-ui.taglib.xml
> INFO: Added Library from:
> jar:file:/D:/java/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/testglassfish1/WEB-INF/lib/jsf-facelets.jar!/META-INF/jstl-core.taglib.xml
> INFO: Added Library from:
> jar:file:/D:/java/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/testglassfish1/WEB-INF/lib/jsf-facelets.jar!/META-INF/jstl-fn.taglib.xml
> INFO: Added Library from:
> jar:file:/D:/java/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/testglassfish1/WEB-INF/lib/richfaces-ui-3.2.2.SR1.jar!/META-INF/a4j.taglib.xml
> INFO: Added Library from:
> jar:file:/D:/java/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/testglassfish1/WEB-INF/lib/richfaces-ui-3.2.2.SR1.jar!/META-INF/ajax4jsf.taglib.xml
> INFO: Added Library from:
> jar:file:/D:/java/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/testglassfish1/WEB-INF/lib/richfaces-ui-3.2.2.SR1.jar!/META-INF/jsp.taglib.xml
> INFO: Added Library from:
> jar:file:/D:/java/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/testglassfish1/WEB-INF/lib/richfaces-ui-3.2.2.SR1.jar!/META-INF/rich.taglib.xml
> INFO: Added Library from:
> jar:file:/D:/java/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/testglassfish1/WEB-INF/lib/richfaces-ui-3.2.2.SR1.jar!/META-INF/richfaces.taglib.xml
> WARNUNG: PWC4011: Unable to set request character encoding to UTF-8 from
> context /testglassfish1, because request parameters have already been
> read, or ServletRequest.getReader() has already been called
> AM FEINSTEN: Begin weaver class transformer processing class
> [testglassfish1/beans/EntityBean].
> AM FEINSTEN: Weaved persistence (PersistenceEntity)
> [testglassfish1/beans/EntityBean].
> AM FEINSTEN: Weaved change tracking (ChangeTracker)
> [testglassfish1/beans/EntityBean].
> AM FEINSTEN: Weaved fetch groups (FetchGroupTracker)
> [testglassfish1/beans/EntityBean].
> AM FEINSTEN: End weaver class transformer processing class
> [testglassfish1/beans/EntityBean].
> SCHWERWIEGEND: javax.persistence.TransactionRequiredException
> ...stack trace
>
> --
> Psssst! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit allen:
> http://www.gmx.net/de/go/multimessenger
> _______________________________________________
> eclipselink-users mailing list
> eclipselink-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>
>
--
View this message in context: http://www.nabble.com/TransactionRequiredException-in-JPA-JSF-application-tp21401120p21735471.html
Sent from the EclipseLink - Users mailing list archive at Nabble.com.