[jboss-user] [Beginner's Corner] - Re: javax.ejb.EJBException: javax.persistence.TransactionRequiredException

Diego Rivera do-not-reply at jboss.com
Tue Feb 1 15:41:07 EST 2011


Diego Rivera [http://community.jboss.org/people/diego_rivera] created the discussion

"Re: javax.ejb.EJBException: javax.persistence.TransactionRequiredException"

To view the discussion, visit: http://community.jboss.org/message/584742#584742

--------------------------------------------------------------
To clarify: the above isn't from the @Startup @Singleton @PostConstruct - that has "resolved itself" (probably because we managed to fix what now seems to have been the root issue - I've been unable to reproduce it since switching to static weaving).

The @ConversationScoped @PostConstruct is happening from a JSF component which accesses said bean.  Thus, there is a request, and there is already a (putative) session (or, should be created by the container if it doesn't exist).

Think of it this way:
> <page.xhtml>
> ...
> <h:outputText value="#{conversation.someValue}"/>
> ...
> </page.xhtml>

And
> @Named
> @ConversationScoped
> public class Conversation implements Serializable {
> 
>   @Inject
>    private Conversation conversation;
> 
>   @PostConstruct
>           protected void init() {
>                     if (this.conversation.isTransient()) {
>           this.conversation.begin();
>           // FIXME: Unelegant workaround since JBoss has no default injector for HttpSession
>           // As I understand it, this violates Servlet and CDI specs for JEE6
>           ExternalContext ctx = FacesContext.getCurrentInstance().getExternalContext();
>           HttpServletRequest req = HttpServletRequest.class.cast(ctx.getRequest());
>           HttpSession session = req.getSession(true);
>           this.conversation.setTimeout(session.getMaxInactiveInterval() * 1000);
>       }
>   }
> 
>     public String getSomeValue() { return "bla"; }
> 

When one hits page.xhtml is when we get the above stack trace for @ConversationScoped @PostConstruct blablabla...

We also get the other "associate() before activate()" error on our form authentication page, and that one doesn't touch the conversation.

If we can fix these, I think we have a legitimate shot at finishing our port (and then I'll ask some rather silly questions about how to properly do JNDI name mapping so I can avoid code changes - all the docs I've found date back to JBoss 3 or earlier).
--------------------------------------------------------------

Reply to this message by going to Community
[http://community.jboss.org/message/584742#584742]

Start a new discussion in Beginner's Corner at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2075]

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20110201/42a930b0/attachment-0001.html 


More information about the jboss-user mailing list