[JBoss Seam] - Re: Strange Seam Actor component problem
by m.makowski
Thanks for the reply. I used LoginAction from the dvd store example which also uses stateless bean, provides the same functionality and does work. Could you please explain what's the difference?
| package com.jboss.dvd.seam;
|
| import java.io.Serializable;
|
| import javax.ejb.Stateless;
| import javax.persistence.EntityManager;
| import javax.persistence.PersistenceContext;
|
| import org.jboss.seam.Seam;
| import org.jboss.seam.annotations.In;
| import org.jboss.seam.annotations.Name;
| import org.jboss.seam.contexts.Context;
| import org.jboss.seam.core.Actor;
| import org.jboss.seam.core.FacesMessages;
|
| @Stateless
| @Name("login")
| public class LoginAction
| implements Login,
| Serializable
| {
| private static final String USER_VAR = "currentUser";
|
| @PersistenceContext
| private EntityManager em;
|
| @In Context sessionContext;
|
| @In Actor actor;
|
| String username = "";
| String password = "";
|
| public String getUserName() {
| return username;
| }
| public void setUserName(String username) {
| this.username = username;
| }
|
| public String getPassword() {
| return password;
| }
| public void setPassword(String password) {
| this.password = password;
| }
|
| public String login() {
| try {
| User found =
| (User) em.createQuery("select u from User u where u.userName = :userName and u.password = :password")
| .setParameter("userName", username)
| .setParameter("password", password)
| .getSingleResult();
|
| sessionContext.set(USER_VAR, found);
|
| actor.setId(username);
|
| if (found instanceof Admin) {
| actor.getGroupActorIds().add("shippers");
| actor.getGroupActorIds().add("reviewers");
| System.out.println("ADMIN");
| return "admin";
| } else {
| return null; // redisplay the current page
| }
| } catch (Exception e) {
| // this message is lost in the session invalidation
| FacesMessages.instance().addFromResourceBundle("loginErrorPrompt");
| Seam.invalidateSession();
| return "home";
| }
| }
|
| public String logout() {
| Seam.invalidateSession();
| sessionContext.set(USER_VAR, null);
| sessionContext.set("loggedIn", null);
| return "logout";
| }
|
| private User currentUser() {
| return (User) sessionContext.get(USER_VAR);
| }
|
| public boolean isLoggedIn() {
| return currentUser() != null;
| }
|
| public boolean isCustomer() {
| User user = currentUser();
| return (user!=null) && (user instanceof Customer);
| }
|
| public boolean isAdmin() {
| User user = currentUser();
| return (user!=null) && (user instanceof Admin);
| }
|
| public String adminCheck() {
| if(isAdmin())
| {
| return null;
| }
| return "home";
|
|
| }
| }
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4002633#4002633
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4002633
19 years, 3 months
[JBoss Seam] - Statefull EJB extends from EntityHome throws ClassCastExcept
by blackicebird
I use stateful ejb extends the EntityHome, but I want to use @PersistenceContext inject the EntityManager, so i can use ejb container transaction management, but it throws Exception. I don't know why, who can help me? Does EntityHome must use itself EntityManager? Thanks your reply.
My ejb:
| import javax.ejb.Remove;
| import javax.ejb.Stateful;
| import javax.persistence.EntityManager;
| import javax.persistence.PersistenceContext;
|
| import org.jboss.seam.annotations.Destroy;
| import org.jboss.seam.annotations.Name;
| import org.jboss.seam.annotations.Begin;
| import org.jboss.seam.annotations.RequestParameter;
| import org.jboss.seam.framework.EntityHome;
|
| import com.foo.psims.entity.MyEntity;
|
| @Stateful
| @Name("myEntityHome")
| public class MyEntityHome extends EntityHome<MyEntity> implements
| BaseHomeInter<MyEntity> {
|
| private static final long serialVersionUID = -7234024691621156847L;
|
| @PersistenceContext
| EntityManager em;
|
| @RequestParameter
| Long myEntityId;
|
| @Override
| public Object getId() {
| if (myEntityId == null) {
| return super.getId();
| } else {
| return myEntityId;
| }
| }
|
| @Override
| @Begin
| public void create() {
| super.create();
| }
|
| @Remove
| @Destroy
| public void destroy() {
|
| }
|
| public String delete() {
| return super.remove();
| }
|
| @Override
| public EntityManager getEntityManager() {
| return em;
| }
|
| @Override
| public void setEntityManager(EntityManager entityManager) {
| em = entityManager;
| }
|
| }
|
Exception:
| Exception during INVOKE_APPLICATION(5): java.lang.ClassCastException: org.hibernate.ejb.EntityManagerImpl
| org.jboss.ejb3.tx.Ejb3TxPolicy.handleInCallerTx(Ejb3TxPolicy.java:93)
| org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:130)
| org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:195)
| org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
| org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulInstanceInterceptor.java:83)
| org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
| org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:102)
| org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
| org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
| org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| org.jboss.ejb3.stateful.StatefulContainer.localInvoke(StatefulContainer.java:203)
| org.jboss.ejb3.stateful.StatefulLocalProxy.invoke(StatefulLocalProxy.java:98)
| $Proxy377.persist(Unknown Source)
| com.foo.psims.action.BaseHomeInter$$FastClassByCGLIB$$c393af8b.invoke(<generated>)
| net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
| org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:45)
| org.jboss.seam.intercept.ClientSideInterceptor$1.proceed(ClientSideInterceptor.java:73)
| org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:55)
| org.jboss.seam.interceptors.RemoveInterceptor.removeIfNecessary(RemoveInterceptor.java:39)
| sun.reflect.GeneratedMethodAccessor589.invoke(Unknown Source)
| sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| java.lang.reflect.Method.invoke(Method.java:585)
| org.jboss.seam.util.Reflections.invoke(Reflections.java:18)
| org.jboss.seam.intercept.Interceptor.aroundInvoke(Interceptor.java:169)
| org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:64)
| org.jboss.seam.interceptors.ExceptionInterceptor.handleExceptions(ExceptionInterceptor.java:38)
| sun.reflect.GeneratedMethodAccessor588.invoke(Unknown Source)
| sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| java.lang.reflect.Method.invoke(Method.java:585)
| org.jboss.seam.util.Reflections.invoke(Reflections.java:18)
| org.jboss.seam.intercept.Interceptor.aroundInvoke(Interceptor.java:169)
| org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:64)
| org.jboss.seam.intercept.RootInterceptor.createSeamInvocationContext(RootInterceptor.java:144)
| org.jboss.seam.intercept.RootInterceptor.invokeInContexts(RootInterceptor.java:129)
| org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:102)
| org.jboss.seam.intercept.ClientSideInterceptor.interceptInvocation(ClientSideInterceptor.java:82)
| org.jboss.seam.intercept.ClientSideInterceptor.intercept(ClientSideInterceptor.java:51)
| com.foo.psims.action.BaseHomeInter$$EnhancerByCGLIB$$fea389ff.persist(<generated>)
| sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| java.lang.reflect.Method.invoke(Method.java:585)
| com.sun.el.parser.AstValue.invoke(AstValue.java:151)
| com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283)
| com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
| com.sun.facelets.el.LegacyMethodBinding.invoke(LegacyMethodBinding.java:69)
| org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:63)
| javax.faces.component.UICommand.broadcast(UICommand.java:106)
| javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:94)
| javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:168)
| org.apache.myfaces.lifecycle.LifecycleImpl.invokeApplication(LifecycleImpl.java:343)
| org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:86)
| javax.faces.webapp.FacesServlet.service(FacesServlet.java:137)
| org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
| org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| org.jboss.seam.servlet.SeamRedirectFilter.doFilter(SeamRedirectFilter.java:32)
| org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| org.jboss.seam.servlet.SeamExceptionFilter.doFilter(SeamExceptionFilter.java:46)
| org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
| org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
| org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
| org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
| org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
| org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
| org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
| org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
| org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
| org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
| org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
| org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
| org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
| java.lang.Thread.run(Thread.java:595)
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4002629#4002629
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4002629
19 years, 3 months
[JBossCache] - Re: NPE when using optimistic locking with JbossCache 1.4.0.
by kgrjb
hi manik
i got a massive number of ".. is newer .." error on read only transactions and even with only 1 user running - that is effectively no concurrency.
surprisingly the identical setup[i really mean identical because i copied the whole jboss dir with all cache settings and everything] seems to work on a different server in the cluster.
org.jboss.cache.CacheException: DataNode ... version org.hibernate.cache.OptimisticTreeCache$DataVersionAdapter@1afd07df ... is newer than workspace node org.hibernate.cache.OptimisticTreeCache$DataVersionAdapter@1afd07df ...
at org.jboss.cache.interceptors.OptimisticValidatorInterceptor.simpleValidate(OptimisticValidatorInterceptor.java:127)
at org.jboss.cache.interceptors.OptimisticValidatorInterceptor.validateNodes(OptimisticValidatorInterceptor.java:101)
at org.jboss.cache.interceptors.OptimisticValidatorInterceptor.invoke(OptimisticValidatorInterceptor.java:66)
at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68)
at org.jboss.cache.interceptors.OptimisticLockingInterceptor.invoke(OptimisticLockingInterceptor.java:95)
at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68)
at org.jboss.cache.interceptors.OptimisticReplicationInterceptor.invoke(OptimisticReplicationInterceptor.java:74)
at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68)
at org.jboss.cache.interceptors.TxInterceptor.runPreparePhase(TxInterceptor.java:804)
at org.jboss.cache.interceptors.TxInterceptor$LocalSynchronizationHandler.beforeCompletion(TxInterceptor.java:1069)
at org.jboss.cache.interceptors.OrderedSynchronizationHandler.beforeCompletion(OrderedSynchronizationHandler.java:75)
at org.jboss.tm.TransactionImpl.doBeforeCompletion(TransactionImpl.java:1491)
at org.jboss.tm.TransactionImpl.beforePrepare(TransactionImpl.java:1110)
at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:324)
at org.jboss.tm.TxManager.commit(TxManager.java:240)
at org.jboss.aspects.tx.TxPolicy.endTransaction(TxPolicy.java:175)
at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:87)
at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:191)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:102)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:211)
at org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:79)
...
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4002619#4002619
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4002619
19 years, 3 months
[JBoss jBPM] - Re: douplicate process definitions after redeploy
by rabbiaqaswar
hello
i am using JBoss jboss-4.0.5 and i commented the default value of hibernate.hbm2ddl.auto = create in persistence.properties and set it in the persistence.xml file as hibernate.hbm2ddl.auto = update.
My tables already exist in the database. I dont want to to create new tables everytime the application is deployed on the JBoss. But now when i deploy my application on JBoss with the value of hibernate.hbm2ddl.auto set to 'update' i get the following exception:
| 09:54:18,483 WARN [JDBCExceptionReporter] SQL Error: 1031, SQLState: 42000
| 09:54:18,483 ERROR [JDBCExceptionReporter] ORA-01031: insufficient privileges
|
| 09:54:18,483 ERROR [SchemaUpdate] could not complete schema update
| org.hibernate.exception.SQLGrammarException: could not get table metadata: CUSTOMERS
| at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
| at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
| at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
| at org.hibernate.tool.hbm2ddl.DatabaseMetadata.getTableMetadata(DatabaseMetadata.java:100)
| at org.hibernate.cfg.Configuration.generateSchemaUpdateScript(Configuration.java:878)
| at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:140)
| at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:314)
| at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1218)
| at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:688)
| at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.
| java:127)
| at org.jboss.ejb3.entity.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:264)
| 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)
|
|
|
Please help!
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4002604#4002604
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4002604
19 years, 3 months