[Design of JBossXB] - Re: Attributes problem
by adrian@jboss.org
"alex.loubyansky(a)jboss.com" wrote : The attributes don't belong to the CDATA, so it's logical that they are not set in this case. And it would even look confusing to me if we "fixed" it so that they are set.
|
| Instead, the key should be unmarshalled to an object on which we would set its children that the attributes and the CDATA are.
Yes, but it is more complicated than that.
Its polymorphic and a mixed type.
The way I've done the wrapper for the CDATA is obviosly wrong. It doesn't
work if the wrapper has attributes like this case.
We should do like the old parsing did, which is to assume the wrapper
(StringValueMetaData) but then replace if we see a nested element
(e.g. ListValueMetaData).
I don't think its just a case of creating a new ParticleHandler to create the wrapper
because we don't want the ListValueMetaData injected onto the StringValueMetaData
we want to replace it if we see a subelement.
I'll look at it once I've resolved the other issues I've found.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4134566#4134566
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4134566
18 years, 1 month
[Design of the JBoss EJB Container] - Application Error: tried to enter Stateful bean with differe
by bicienz
Hi,
I have a problem. Often when i invoke some EJB StateFul methods in my web application, this throws the following exception(at the end of my post).
The problem occurs on JBOSS 4.0.5.GA while it works correctly on Weblogic 7.0. Throughs several searches on the web i found the problem is due to concurrent calls to the EJB methods from more clients that not allowed in EJB Stateful, but i didn't find any solutions. Is there someone that could help me ?
Thanks in advance.
2008-02-27 20:19:54,457 ERROR [org.jboss.ejb.plugins.LogInterceptor] EJBException in method: public abstract java.lang.String infrastruttura.server.ejb.sessionproxy.SessionProxy.getCodiceGruppo() throws java.rmi.RemoteException:
javax.ejb.EJBException: Application Error: tried to enter Stateful bean with different tx context, contextTx: TransactionImpl:XidImpl[FormatId=257, GlobalId=pitjb01/305, BranchQual=, localId=305], methodTx: TransactionImpl:XidImpl[FormatId=257, GlobalId=pitjb01/306, BranchQual=, localId=306]
at org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor.invoke(StatefulSessionInstanceInterceptor.java:283)
at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:63)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:121)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205)
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:136)
at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:648)
at org.jboss.ejb.Container.invoke(Container.java:954)
at sun.reflect.GeneratedMethodAccessor79.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.invocation.local.LocalInvoker$MBeanServerAction.invoke(LocalInvoker.java:169)
at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:118)
at org.jboss.invocation.InvokerInterceptor.invokeLocal(InvokerInterceptor.java:209)
at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:195)
at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:61)
at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:70)
at org.jboss.proxy.ejb.StatefulSessionInterceptor.invoke(StatefulSessionInterceptor.java:121)
at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:100)
at $Proxy83.getCodiceGruppo(Unknown Source)
at org.apache.jsp.jsp.main_jsp._jspService(main_jsp.java:117)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
2008-02-27 20:19:54,458 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/PitagoraOlo].[jsp]] Servlet.service() for servlet jsp threw exception
java.rmi.ServerException: EJBException:; nested exception is:
javax.ejb.EJBException: Application Error: tried to enter Stateful bean with different tx context, contextTx: TransactionImpl:XidImpl[FormatId=257, GlobalId=pitjb01/305, BranchQual=, localId=305], methodTx: TransactionImpl:XidImpl[FormatId=257, GlobalId=pitjb01/306, BranchQual=, localId=306]
at org.jboss.ejb.plugins.LogInterceptor.handleException(LogInterceptor.java:365)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:209)
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:136)
at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:648)
at org.jboss.ejb.Container.invoke(Container.java:954)
at sun.reflect.GeneratedMethodAccessor79.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.invocation.local.LocalInvoker$MBeanServerAction.invoke(LocalInvoker.java:169)
at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:118)
at org.jboss.invocation.InvokerInterceptor.invokeLocal(InvokerInterceptor.java:209)
at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:195)
at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:61)
at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:70)
at org.jboss.proxy.ejb.StatefulSessionInterceptor.invoke(StatefulSessionInterceptor.java:121)
at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:100)
at $Proxy83.getCodiceGruppo(Unknown Source)
at org.apache.jsp.jsp.main_jsp._jspService(main_jsp.java:117)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
Caused by: javax.ejb.EJBException: Application Error: tried to enter Stateful bean with different tx context, contextTx: TransactionImpl:XidImpl[FormatId=257, GlobalId=pitjb01/305, BranchQual=, localId=305], methodTx: TransactionImpl:XidImpl[FormatId=257, GlobalId=pitjb01/306, BranchQual=, localId=306]
at org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor.invoke(StatefulSessionInstanceInterceptor.java:283)
at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:63)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:121)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205)
... 47 more
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4134521#4134521
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4134521
18 years, 1 month
[Design the new POJO MicroContainer] - enums, generics and other animals
by adrian@jboss.org
I don't understand why there is an InjectOption and an InjectionOption?
The reason the ControllerState and ControllerMode are the way they are
is because the MC was originally written on JDK1.4
so they couldn't be written as enums.
Actually, since ControllerState is extensible (you can create your own states)
it can't be an Enum.
All of these should just be enums throughout
Cardinality
FromContext
InjectionOption (already is InjectOption???)
AutowireType
Since we are doing 2.0.0 we could also decde to change ControllerMode to an Enum
as well?
Also the FromContext is a misuse of generics.
The purpose of generics is to produce compile time errors, the way this class
is used, it is simply not possible for the compiler to do so.
It looks to me like the generic is only here to avoid having to manually code
the check/cast of ControllerContext -> KernelControllerContext
but you should do that by hand anyway to give a better error message than CCE
e.g. MetaDataFromContext
| public MetaData internalExecute(ControllerContext context)
| {
| if (context instanceof KernelControllerContext == false)
| throw new IllegalArgumentException("Cannot get metadata from context " + context);
| KernelControllerContext kernelContext = (KernelControllerContext) context;
| return kernelContext.getScopeInfo().getMetaData();
| }
|
In fact, this is wrong anyway, since you can get a ScopeInfo/Metadata
from any context. ;-)
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4134507#4134507
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4134507
18 years, 1 month