I have been working on this oc4j issue from the reference guide.

- followed the example from the reference guide chapter for a seam-gen app.
- if <transaction:ejb-transaction> is in the components.xml app gets the 
exceptions below.  If it is not there everything works fine.
- I broke it down into a smaller problem and did not do the drools, or the 
reverse eng. on a db but still had this issue.

- Similar issue on the forum - but in that the JNDI lookup failed and it was 
JBoss AS http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4071599

The weird part is that the JNDI reference to the EjbSynchronizations is found 
it is just not the correct object.  Instead of an instance of the 
EjbSynchronizations class it is instance of 
com.evermind.server.ejb.StatefulSessionDefaultLocalHomeImpl.  Which does not 
have the methods from the LocalEjbSynchronizations interface.

I've been comparing the jee5 example because that does not have this issue.  
One thing that is different between the jee5 and seam gen is the 
managed-persistence-context and entity-manager-factory as described in the 
guide.

I have been looking over the seam config files over and over, and it was time 
to get a second opinion.  I have been searching the oc4j docs, and config.  
Also the jboss-seam.jar is listed as an ejb-module in app....xml.

ejb from web.xml 

  | <ejb-local-ref>
  |   <ejb-ref-name>oc4j_gen_drools/EjbSynchronizations/local</ejb-ref-name>
  |   <ejb-ref-type>Session</ejb-ref-type>
  |   <local-home/>
  |   <local>org.jboss.seam.transaction.LocalEjbSynchronizations</local>
  |   <ejb-link>EjbSynchronizations</ejb-link>
  |  </ejb-local-ref>
  | 

application.xml partial

  | <display-name>oc4j_gen_drools</display-name>
  |    
  |    <module>
  |       <web>
  |          <web-uri>oc4j_gen_drools.war</web-uri>
  |          <context-root>/oc4j_gen_drools</context-root>
  |       </web>
  |    </module>
  |    
  |    <module>
  |       <ejb>oc4j_gen_drools.jar</ejb>
  |    </module>
  |    
  |    <!-- Seam and EL -->
  |    <module>
  |        <ejb>jboss-seam.jar</ejb>
  |    </module>    
  | 

Components.xml partial

  |  <core:init debug="true" 
jndi-pattern="java:comp/env/oc4j_gen_drools/#{ejbName}/local"/>
  |      
  |    <core:manager concurrent-request-timeout="500" 
  |                  conversation-timeout="120000" 
  |                  conversation-id-parameter="cid"/>
  |                  
  |    <transaction:ejb-transaction />
  |  
  |    <persistence:entity-manager-factory auto-create="true" 
  |                 name="oc4j_gen_droolsEntityManagerFactory"
  |                 persistence-unit-name="oc4j_gen_drools" />
  |     
  |    <persistence:managed-persistence-context name="entityManager"
  |                                      auto-create="true"
  |                       
entity-manager-factory="#{oc4j_gen_droolsEntityManagerFactory}"/>
  | 

This could be an issue with oc4j, but I'm not sure.  The next thing I was going 
to try was a hack to cast the StatefulSessionDefaultLocalHomeImpl to what we 
expect EjbSynchronizations (obviouslly just temp).

Thanks,
Jay

SEVERE: uncaught exception
  | java.lang.IllegalStateException: Could not start transaction
  |        at 
org.jboss.seam.jsf.SeamPhaseListener.begin(SeamPhaseListener.java:578)
  |        at 
org.jboss.seam.jsf.SeamPhaseListener.handleTransactionsBeforePhase(SeamPhaseListener.java:314)
  |        at 
org.jboss.seam.jsf.SeamPhaseListener.beforeServletPhase(SeamPhaseListener.java:142)
  |        at 
org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.java:116)
  |        at 
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:218)
  |        at 
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
  |        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
  |        at 
com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
  |        at 
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
  |        at 
org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
  |        at 
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
  |        at 
org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
  |        at 
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
  |        at 
org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
  |        at 
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
  |        at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
  |        at 
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
  |        at 
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
  |        at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
  |        at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
  |        at 
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
  |        at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
  |        at 
com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:619)
  |        at 
com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:368)
  |        at 
com.evermind.server.http.HttpRequestHandler.doDispatchRequest(HttpRequestHandler.java:889)
  |        at 
com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:797)
  |        at 
com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:607)
  |        at 
com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:376)
  |        at 
com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:161)
  |        at 
com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:142)
  |        at 
oracle.oc4j.network.ServerSocketReadHandler$ClientRunnable.run(ServerSocketReadHandler.java:275)
  |        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
  |        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
  |        at java.lang.Thread.run(Thread.java:595)
  | Caused by: java.lang.IllegalArgumentException: Could not invoke method by 
reflection: Synchronizations.afterTransactionBegin() on: 
com.evermind.server.ejb.StatefulSessionDefaultLocalHomeImpl
  |        at org.jboss.seam.util.Reflections.invoke(Reflections.java:41)
  |        at 
org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
  |        at 
org.jboss.seam.intercept.ClientSideInterceptor$1.proceed(ClientSideInterceptor.java:76)
  |        at 
org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106)
  |        at 
org.jboss.seam.intercept.ClientSideInterceptor.invoke(ClientSideInterceptor.java:54)
  |        at 
org.javassist.tmp.java.lang.Object_$$_javassist_0.afterTransactionBegin(Object_$$_javassist_0.java)
  |        at 
org.jboss.seam.transaction.UTTransaction.begin(UTTransaction.java:40)
  |        at 
org.jboss.seam.jsf.SeamPhaseListener.begin(SeamPhaseListener.java:573)
  |        ... 33 more
  | Caused by: java.lang.IllegalArgumentException: object is not an instance of 
declaring class
  |        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:585)
  |        at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
  |        ... 40 more
  | Dec 7, 2007 1:39:34 PM org.jboss.seam.jsf.SeamPhaseListener beforePhase

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4111318#4111318

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4111318
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to