[JBoss Seam] - @Destroy-annotated method is not getting called when SFSB is
by zzzz8
It seems as though my stateful session beans (in this case, session scoped) are not being "destroyed" correctly. I have a method which is annotated with the @Remove and @Destroy annotations. When the stateful session bean is being destroyed (after the HTTP session times out - and yes, my SFSB timeout is set to a longer time than the HTTP session timeout), the annotated method is not being called.
Interestingly, I notice my logs seemingly invoke a predestroy mechanism. I originally didn't have the @PreDestroy annotation on my method (which already had @Remove and @Destroy), so I decided to put it in (i.e. the @PreDestroy annotation). When I did that, the method was called via PreDestroy, but not Remove or Destroy. So I'm using it as a workaround right now because it does not seem to be called during @Destroy.
I also notice when the component is getting destroyed, I'm getting a javax.ejb.EJBNoSuchObjectException: Could not find Stateful bean. Is there a reason for this or is this a bug?
Environment:
Windows XP Pro
Seam 1.2.1GA
ICEfaces 1.6
JBoss 4.0.5GA
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4071779#4071779
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4071779
18Â years, 8Â months
[JBoss Seam] - Session scope causes ArrayIndexOutOfBoundsException
by sysex
Looks like a bug. I'm not a contributor or anything. Should this be added to JIRA?
This error came up when I first viewed my home page (containing a bean using the @Scope(ScopeType.SESSION) annotation) using Firefox, then switched to a new session with Konqueror hitting the same page.
12:47:17,285 INFO [Contexts] starting up: org.jboss.seam.security.identity
12:47:17,287 INFO [Contexts] starting up: org.jboss.seam.web.session
12:47:17,300 ERROR [[/]] Session event listener threw exception
java.lang.ArrayIndexOutOfBoundsException: 149
at org.jboss.seam.contexts.BasicContext.getNames(BasicContext.java:60)
at org.jboss.seam.contexts.Contexts.startup(Contexts.java:270)
at org.jboss.seam.contexts.Lifecycle.beginSession(Lifecycle.java:187)
at org.jboss.seam.contexts.ServletLifecycle.beginSession(ServletLifecycle.java:127)
at org.jboss.seam.servlet.SeamListener.sessionCreated(SeamListener.java:44)
at org.apache.catalina.session.StandardSession.tellNew(StandardSession.java:397)
at org.apache.catalina.session.StandardSession.setId(StandardSession.java:369)
at org.apache.catalina.session.ManagerBase.createSession(ManagerBase.java:827)
at org.apache.catalina.session.StandardManager.createSession(StandardManager.java:291)
at org.apache.catalina.connector.Request.doGetSession(Request.java:2295)
at org.apache.catalina.connector.Request.getSession(Request.java:2066)
at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:833)
at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:216)
at org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:545)
at com.sun.faces.context.SessionMap.getSession(ExternalContextImpl.java:1002)
at com.sun.faces.context.SessionMap.get(ExternalContextImpl.java:962)
at org.jboss.seam.contexts.BasicContext.get(BasicContext.java:48)
at org.jboss.seam.Component.getInstance(Component.java:1734)
at org.jboss.seam.Component.getInstance(Component.java:1712)
at org.jboss.seam.web.Session.getInstance(Session.java:122)
at org.jboss.seam.contexts.FacesLifecycle.beginRequest(FacesLifecycle.java:53)
at org.jboss.seam.jsf.SeamPhaseListener.beforeRestoreView(SeamPhaseListener.java:361)
at org.jboss.seam.jsf.SeamPhaseListener.beforeServletPhase(SeamPhaseListener.java:139)
at org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.java:116)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:222)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:424)
at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:343)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:144)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
----------------------------------------------------------
The code says:
public String[] getNames()
{
//yes, I know about the toArray() method,
//but there is a bug in the RI!
Set keySet = map.keySet();
String[] array = new String[ keySet.size() ];
int i=0;
for (String key: keySet)
{
array[i++] = key;
}
return array;
}
-------------------------------
Guess this bug in RI is causing a bug in Seam.
By the way, this didn't seem to cause any problems in rendering the page.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4071773#4071773
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4071773
18Â years, 8Â months
[JBoss Seam] - Re: EntityConverter: Entity Manager not found
by mgrouch
anonymous wrote : 3) No support for xml mapped entities (and you're not going to get this to work afaics)
It is possible to get it work using Hibernate API. We need access to hibernate session object and entity.
getSession().getSessionFactory().getClassMetadata(getPersistentClass()).getIdentifier(entity, mode) should give Id in case if entities are not using annotations.
anonymous wrote : 4) correct implementation of toString() on all keys (think about composite keys here)
Yes. But default implementation would work too (I haven't checked though). Default implementation of toString would produce too long string in HTML, but it might even work as is.
How do you handle composite keys with entityConverter? I think this can be done same way after all we do need to create a string out of composite key to use it in HTML.
anonymous wrote : 1) You must extend EntitySelector in code. This works very badly with the Seam Framework and components.xml
Not sure why extending it would be a problem...
anonymous wrote : 2) To keep your entities managed, you must cache all entities in your dropdown in the conversation scope (yes, I know you can put them in the event or page scope, but then they won't be managed).
Even if they are not managed you can always get access to managed entity
by calling finder by ID. It is a little inconvenience for some, but at least
solution for dropdowns will work for everyone (even those who do not use SMPC). Dropdown are usually read-only entities anyway...
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4071772#4071772
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4071772
18Â years, 8Â months
[JNDI/Naming/Network] - Re: javax.naming.CommunicationException
by tnine
I'm also experiencing this. I'm using JBoss 4.0.5, and trying to look up a remote JMS Queue. I can start the server on my localhost, and use the following properties.
| java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
| java.naming.factory.url.pkgs= org.jboss.naming:org.jnp.interfaces
| java.naming.provider.url=jnp://localhost:1100
|
It works like a champ. I then copied the same JBoss installation over the Linux server, and changed my JDBC connection for the MQ data source. The server initializes so the data source is correct. When I change my properties to the following, everything fails. I've included my stack trace. I know the port is available, if I telnet using "telnet testjboss1 1100", I can connect to the socket and I get data in my window from JBoss.
| java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
| java.naming.factory.url.pkgs= org.jboss.naming:org.jnp.interfaces
| java.naming.provider.url=jnp://testjboss1:1100
|
Stacktrace
| org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'inputReader' defined in class path resource [reader-context.xml]: Cannot resolve reference to bean 'inputReaderTarget' while setting bean property 'target'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'inputReaderTarget' defined in class path resource [reader-context.xml]: Cannot resolve reference to bean 'dataHandler' while setting bean property 'dataHandler'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataHandler' defined in class path resource [reader-context.xml]: Cannot resolve reference to bean 'inputJmsTemplate' while setting bean property 'template'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'inputJmsTemplate' defined in class path resource [reader-context.xml]: Cannot resolve reference to bean 'inputQueueConnectionFactory' while setting bean property 'connectionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'inputQueueConnectionFactory' defined in class path resource [reader-context.xml]: Cannot resolve reference to bean 'remoteJMSQueue' while setting bean property 'targetConnectionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'remoteJMSQueue' defined in class path resource [reader-context.xml]: Invocation of init method failed; nested exception is javax.naming.CommunicationException [Root exception is java.rmi.RemoteException: Service unavailable.]
| Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'inputReaderTarget' defined in class path resource [reader-context.xml]: Cannot resolve reference to bean 'dataHandler' while setting bean property 'dataHandler'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataHandler' defined in class path resource [reader-context.xml]: Cannot resolve reference to bean 'inputJmsTemplate' while setting bean property 'template'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'inputJmsTemplate' defined in class path resource [reader-context.xml]: Cannot resolve reference to bean 'inputQueueConnectionFactory' while setting bean property 'connectionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'inputQueueConnectionFactory' defined in class path resource [reader-context.xml]: Cannot resolve reference to bean 'remoteJMSQueue' while setting bean property 'targetConnectionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'remoteJMSQueue' defined in class path resource [reader-context.xml]: Invocation of init method failed; nested exception is javax.naming.CommunicationException [Root exception is java.rmi.RemoteException: Service unavailable.]
| Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataHandler' defined in class path resource [reader-context.xml]: Cannot resolve reference to bean 'inputJmsTemplate' while setting bean property 'template'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'inputJmsTemplate' defined in class path resource [reader-context.xml]: Cannot resolve reference to bean 'inputQueueConnectionFactory' while setting bean property 'connectionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'inputQueueConnectionFactory' defined in class path resource [reader-context.xml]: Cannot resolve reference to bean 'remoteJMSQueue' while setting bean property 'targetConnectionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'remoteJMSQueue' defined in class path resource [reader-context.xml]: Invocation of init method failed; nested exception is javax.naming.CommunicationException [Root exception is java.rmi.RemoteException: Service unavailable.]
| Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'inputJmsTemplate' defined in class path resource [reader-context.xml]: Cannot resolve reference to bean 'inputQueueConnectionFactory' while setting bean property 'connectionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'inputQueueConnectionFactory' defined in class path resource [reader-context.xml]: Cannot resolve reference to bean 'remoteJMSQueue' while setting bean property 'targetConnectionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'remoteJMSQueue' defined in class path resource [reader-context.xml]: Invocation of init method failed; nested exception is javax.naming.CommunicationException [Root exception is java.rmi.RemoteException: Service unavailable.]
| Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'inputQueueConnectionFactory' defined in class path resource [reader-context.xml]: Cannot resolve reference to bean 'remoteJMSQueue' while setting bean property 'targetConnectionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'remoteJMSQueue' defined in class path resource [reader-context.xml]: Invocation of init method failed; nested exception is javax.naming.CommunicationException [Root exception is java.rmi.RemoteException: Service unavailable.]
| Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'remoteJMSQueue' defined in class path resource [reader-context.xml]: Invocation of init method failed; nested exception is javax.naming.CommunicationException [Root exception is java.rmi.RemoteException: Service unavailable.]
| Caused by: javax.naming.CommunicationException [Root exception is java.rmi.RemoteException: Service unavailable.]
| at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:707)
| at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:572)
| at javax.naming.InitialContext.lookup(InitialContext.java:351)
| at org.springframework.jndi.JndiTemplate$1.doInContext(JndiTemplate.java:123)
| at org.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:85)
| at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:121)
| at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:146)
| at org.springframework.jndi.JndiLocatorSupport.lookup(JndiLocatorSupport.java:93)
| at org.springframework.jndi.JndiObjectLocator.lookup(JndiObjectLocator.java:105)
| at org.springframework.jndi.JndiObjectTargetSource.afterPropertiesSet(JndiObjectTargetSource.java:96)
| at org.springframework.jndi.JndiObjectFactoryBean$JndiObjectProxyFactory.createJndiObjectProxy(JndiObjectFactoryBean.java:276)
| at org.springframework.jndi.JndiObjectFactoryBean$JndiObjectProxyFactory.access$000(JndiObjectFactoryBean.java:265)
| at org.springframework.jndi.JndiObjectFactoryBean.afterPropertiesSet(JndiObjectFactoryBean.java:173)
| at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1202)
| at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1172)
| at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:428)
| at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
| at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
| at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
| at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
| at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:261)
| at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:109)
| at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1100)
| at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:862)
| at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:424)
| at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
| at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
| at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
| at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
| at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:261)
| at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:109)
| at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1100)
| at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:862)
| at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:424)
| at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
| at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
| at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
| at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
| at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:261)
| at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:109)
| at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1100)
| at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:862)
| at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:424)
| at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
| at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
| at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
| at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
| at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:261)
| at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:109)
| at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1100)
| at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:862)
| at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:424)
| at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
| at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
| at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
| at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
| at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:261)
| at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:109)
| at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1100)
| at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:862)
| at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:424)
| at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
| at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
| at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
| at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
| at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:284)
| at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
| at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:91)
| at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:75)
| at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:65)
| at com.purdueefcu.statements.reader.Reader.readFile(Reader.java:50)
| at com.purdueefcu.statements.reader.Reader.main(Reader.java:107)
| Caused by: java.rmi.RemoteException: Service unavailable.
| at org.jboss.ha.framework.interfaces.HARMIClient.invokeRemote(HARMIClient.java:158)
| at org.jboss.ha.framework.interfaces.HARMIClient.invoke(HARMIClient.java:196)
| at $Proxy20.lookup(Unknown Source)
| at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:610)
| ... 71 more
|
|
|
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4071771#4071771
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4071771
18Â years, 8Â months