[JBoss Seam] - Re: Why cannot I run more than one concurrent conversation S
by gus888
"curtney" wrote :
| effectively leaving the current/active conversation (not ending it). You can then proceed to create another conversation.
|
| In other words, you have four options:
| 1) join
| 2) nest
| 3)propagation none ****** This is the one you want *********
| 4)end
|
| correct me if I am wrong guys
Hi Guys,
I am totally confused by the conversation style. For a programmer, he designs a conversation, e.g. place an order: a long running conversation - "start, join, join, nest, join, end-nest, end". When a user use it, he may propagate the whole process and finish a long conversation, or he may stop at any step (he may not click cancel), then browse to another long-running conversation. Definitely, a user cannot add a "propagation-none" code to a step which he stopped. At this situation, can a developer guess which step a user may stop? then add a "propagation-none"? Sorry, I am totally lost.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4101083#4101083
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4101083
18 years, 5 months
[JBoss Seam] - Custom hibernate validator causes InvalidStateException
by Sefai
Hi all,
I wrote an hibernate validator for date/time comparing...Here is the code for this case:
Annotation Interface
| @Documented
| @ValidatorClass(AfterTimeValidator.class)
| @Target(TYPE)
| @Retention(RUNTIME)
| public @interface AfterTime {
|
| String property();
|
| String after();
|
| String message();
| }
|
Implementation
| public class AfterTimeValidator implements Validator<AfterTime>, Serializable {
|
| /**
| *
| */
| private static final long serialVersionUID = -769074362761155421L;
|
| String property;
|
| String after;
|
| private Getter propertyGetter;
|
| private Getter afterGetter;
|
| public void initialize(AfterTime parameters) {
| property = parameters.property();
| after = parameters.after();
| }
|
| public boolean isValid(Object value) {
| initGetters(value.getClass());
| LocalTime propertyValue = (LocalTime) propertyGetter.get(value);
| LocalTime afterValue = (LocalTime) afterGetter.get(value);
| return propertyValue.isAfter(afterValue);
| }
|
| @SuppressWarnings("unchecked")
| private synchronized void initGetters(Class value) {
| propertyGetter = ReflectHelper.getGetter(value, property);
| afterGetter = ReflectHelper.getGetter(value, after);
| }
|
| }
|
Since it will perform validation between two properties of a class its TARGET is TYPE. And I use it in my domain object like this:
| @Entity
| @AfterTime(property = "endTime", after = "startTime", message = "...")
| public class TestObject implements Serializable {
|
| private static final long serialVersionUID = 1974810250948566860L;
|
| private Long id;
| private String description;
| private LocalTime startTime;
| private LocalTime endTime;
|
|
| @Id
| @GeneratedValue(strategy = GenerationType.SEQUENCE)
| @Column(name = "id")
| public Long getId() {
| return id;
| }
|
|
| @Type(type = "org.joda.time.contrib.hibernate.PersistentLocalTimeAsString")
| @Column(name = "starttime")
| public LocalTime getStartTime() {
| return startTime;
| }
|
| @Type(type = "org.joda.time.contrib.hibernate.PersistentLocalTimeAsString")
| @Column(name = "endtime")
| public LocalTime getEndTime() {
| return endTime;
| }
|
| @Column(name = "description", length = 100, nullable = false, unique = true)
| public String getDescription() {
| return description;
| }
|
| public void setId(Long id) {
| this.id = id;
| }
|
| public void setStartTime(LocalTime startTime) {
| this.startTime = startTime;
| }
|
| public void setEndTime(LocalTime endTime) {
| this.endTime = endTime;
| }
|
| public void setDescription(String description) {
| this.description = description;
| }
| }
Here is the page i edit this object:
| <a4j:region id="modalPanelFormRegion">
|
| <h:form id="modalPanelForm">
|
| <seam:div id="editPanel" rendered="#{actionBean.selectedTestObject!=null}">
|
| <span class="smallerrors">
| <seam:message showDetail="false" showSummary="true" />
| </span>
|
| <seam:validateAll>
|
| <f:facet name="afterInvalidField">
| <seam:span styleClass="smallerrors">*
| <seam:message showDetail="true" showSummary="false" />
| </seam:span>
| </f:facet>
|
| <seam:decorate template="/templates/display.xhtml">
| <ui:define name="label">#{messages['ui.message1']}</ui:define>
| <h:inputText value="#{actionBean.selectedTestObject.startTime}" required="true">
| <my:convertDateTime type="time" pattern="HH:mm" />
| </h:inputText>
| </seam:decorate>
|
| <seam:decorate template="/templates/display.xhtml">
| <ui:define name="label">#{messages['ui.message2']}</ui:define>
| <h:inputText value="#{actionBean.selectedTestObject.endTime}" required="true">
| <my:convertDateTime type="time" pattern="HH:mm" />
| </h:inputText>
| </seam:decorate>
|
| <seam:decorate template="/templates/display.xhtml">
| <ui:define name="label">#{messages['ui.message3']}</ui:define>
| <h:inputText value="#{actionBean.selectedTestObject.description}" required="true"/>
| </seam:decorate>
|
| </seam:validateAll>
|
| <rich:spacer height="15" />
|
| <h:panelGrid columns="3">
| <a4j:commandButton
| value="#{messages['ui.button.message2']}"
| reRender="editPanel,listDataTable"
| actionListener="#{actionBean.saveTestObject}"/>
| <a4j:status>
| <f:facet name="start">
| <h:graphicImage value="/img/ajax-loader.gif" />
| </f:facet>
| <f:facet name="stop">
| <rich:spacer />
| </f:facet>
| </a4j:status>
| <a4j:commandButton
| value="#{messages['ui.button.message3']}"
| onclick="Richfaces.hideModalPanel('editor')" ajaxSingle="true"/>
| </h:panelGrid>
|
| </seam:div>
|
| </h:form>
|
| </a4j:region>
|
Here is the actionBean
| @Name("actionBean")
| @Scope(ScopeType.CONVERSATION)
| public class ActionBean {
|
| @Logger
| private Log logger;
|
| @In
| private FacesMessages facesMessages;
|
| @In(create = true)
| private TestObjectService testObjectService;
|
| private TestObject selectedTestObject;
|
| /**
| * other properties and methods removed for clearity
| */
|
| /**
| * End edit and save changes
| */
| public void saveTestObject() {
| logger.info("#0 updating", this.selectedTestObject);
| testObjectService.saveTestObject(this.selectedTestObject);
| facesMessages.add("operationCompleted.");
| }
|
| }
|
|
When I try to save this object with an invalid startDate,endDate combination i get the following exception stack trace...
| 01.Kas.2007 15:45:32 com.sun.faces.lifecycle.InvokeApplicationPhase execute
| WARNING: /admin/testObjectPage.xhtml @70,64 actionListener="#{actionBean.saveTestObject}": org.hibernate.validator.InvalidStateException: validation failed for: org.domain.TestObject
| javax.faces.el.EvaluationException: /admin/testObjectPage.xhtml @70,64 actionListener="#{actionBean.saveTestObject}": org.hibernate.validator.InvalidStateException: validation failed for: org.domain.TestObject
| at com.sun.facelets.el.LegacyMethodBinding.invoke(LegacyMethodBinding.java:73)
| at javax.faces.component.UICommand.broadcast(UICommand.java:387)
| at org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:61)
| at org.ajax4jsf.component.UIInclude.broadcast(UIInclude.java:138)
| at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:184)
| at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:162)
| at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:350)
| at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
| at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
| at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
| at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
| at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
| at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
| 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:44)
| 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:273)
| 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.web.LoggingFilter.doFilter(LoggingFilter.java:58)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| 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.servlet.SeamFilter.doFilter(SeamFilter.java:158)
| at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
| at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
| at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
| at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
| at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
| at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
| at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
| at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
| at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
| at org.mortbay.jetty.Server.handle(Server.java:324)
| at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
| at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
| at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648)
| at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
| at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
| at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
| at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
| Caused by: org.hibernate.validator.InvalidStateException: validation failed for: org.domain.TestObject
| at org.hibernate.validator.event.ValidateEventListener.validate(ValidateEventListener.java:148)
| at org.hibernate.validator.event.ValidateEventListener.onPreUpdate(ValidateEventListener.java:177)
| at org.hibernate.action.EntityUpdateAction.preUpdate(EntityUpdateAction.java:217)
| at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:65)
| at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:234)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:142)
| at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
| at org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:41)
| at org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:969)
| at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1114)
| at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
| at org.dao.impl.TestObjectDAOImpl.get(TestObjectDAOImpl.java:18)
| 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:597)
| at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
| at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
| at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106)
| at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:155)
| at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:91)
| at org.dao.impl.TestObjectDAOImpl_$$_javassist_15.get(TestObjectDAOImpl_$$_javassist_15.java)
| at org.service.impl.TestObjectServiceImpl.get(TestObjectServiceImpl.java:23)
| 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:597)
| at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
| at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
| at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106)
| at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:155)
| at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:91)
| at org.service.impl.TestObjectServiceImpl_$$_javassist_12.get(TestObjectServiceImpl_$$_javassist_12.java)
| at org.action.admin.TestObjectAction.saveTestObject(ActionBean.java:111)
| 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:597)
| at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
| at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
| at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.persistence.ManagedEntityIdentityInterceptor.aroundInvoke(ManagedEntityIdentityInterceptor.java:48)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.core.ConversationInterceptor.aroundInvoke(ConversationInterceptor.java:65)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106)
| at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:155)
| at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:91)
| at org.action.admin.ActionBean_$$_javassist_9.saveTestObject(ActionBean_$$_javassist_9.java)
| 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:597)
| at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:328)
| at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:341)
| at org.jboss.el.parser.AstPropertySuffix.invoke(AstPropertySuffix.java:58)
| at org.jboss.el.parser.AstValue.invoke(AstValue.java:96)
| at org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
| at org.jboss.seam.el.OptionalParameterMethodExpression.invoke(OptionalParameterMethodExpression.java:45)
| at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
| at com.sun.facelets.el.LegacyMethodBinding.invoke(LegacyMethodBinding.java:69)
| ... 45 more
| 01.Kas.2007 15:45:32 com.sun.faces.lifecycle.Phase doPhase
| SEVERE: JSF1054: (Phase ID: INVOKE_APPLICATION 5, View ID: /admin/testObjectPage.xhtml) Exception thrown during phase execution: javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle.LifecycleImpl@697087]
| 15:45:32,415 ERROR ExceptionFilter:68 - handling uncaught exception javax.servlet.ServletException: /admin/testObjectPage.xhtml @70,64 actionListener="#{ActionBean.saveTestObject}": org.hibernate.validator.InvalidStateException: validation failed for: org.domain.TestObject
| at javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)
| at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
| at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
| 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:44)
| 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:273)
| 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.web.LoggingFilter.doFilter(LoggingFilter.java:58)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| 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.servlet.SeamFilter.doFilter(SeamFilter.java:158)
| at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
| at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
| at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
| at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
| at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
| at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
| at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
| at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
| at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
| at org.mortbay.jetty.Server.handle(Server.java:324)
| at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
| at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
| at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648)
| at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
| at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
| at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
| at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
| Caused by: javax.faces.el.EvaluationException: /admin/testObjectPage.xhtml @70,64 actionListener="#{ActionBean.saveTestObject}": org.hibernate.validator.InvalidStateException: validation failed for: org.domain.TestObject
| at com.sun.facelets.el.LegacyMethodBinding.invoke(LegacyMethodBinding.java:73)
| at javax.faces.component.UICommand.broadcast(UICommand.java:387)
| at org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:61)
| at org.ajax4jsf.component.UIInclude.broadcast(UIInclude.java:138)
| at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:184)
| at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:162)
| at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:350)
| at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
| at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
| at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
| at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
| ... 35 more
| Caused by: org.hibernate.validator.InvalidStateException: validation failed for: org.domain.TestObject
| at org.hibernate.validator.event.ValidateEventListener.validate(ValidateEventListener.java:148)
| at org.hibernate.validator.event.ValidateEventListener.onPreUpdate(ValidateEventListener.java:177)
| at org.hibernate.action.EntityUpdateAction.preUpdate(EntityUpdateAction.java:217)
| at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:65)
| at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:234)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:142)
| at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
| at org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:41)
| at org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:969)
| at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1114)
| at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
| at org.dao.impl.TestObjectDAOImpl.get(TestObjectDAOImpl.java:18)
| 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:597)
| at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
| at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
| at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106)
| at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:155)
| at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:91)
| at org.dao.impl.TestObjectDAOImpl_$$_javassist_15.get(TestObjectDAOImpl_$$_javassist_15.java)
| at org.service.impl.TestObjectServiceImpl.get(TestObjectServiceImpl.java:23)
| 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:597)
| at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
| at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
| at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106)
| at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:155)
| at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:91)
| at org.service.impl.TestObjectServiceImpl_$$_javassist_12.get(TestObjectServiceImpl_$$_javassist_12.java)
| at org.action.admin.ActionBean.saveTestObject(ActionBean.java:111)
| 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:597)
| at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
| at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
| at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.persistence.ManagedEntityIdentityInterceptor.aroundInvoke(ManagedEntityIdentityInterceptor.java:48)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.core.ConversationInterceptor.aroundInvoke(ConversationInterceptor.java:65)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106)
| at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:155)
| at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:91)
| at org.admin.ActionBean_$$_javassist_9.saveTestObject(ActionBean_$$_javassist_9.java)
| 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:597)
| at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:328)
| at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:341)
| at org.jboss.el.parser.AstPropertySuffix.invoke(AstPropertySuffix.java:58)
| at org.jboss.el.parser.AstValue.invoke(AstValue.java:96)
| at org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
| at org.jboss.seam.el.OptionalParameterMethodExpression.invoke(OptionalParameterMethodExpression.java:45)
| at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
| at com.sun.facelets.el.LegacyMethodBinding.invoke(LegacyMethodBinding.java:69)
| ... 45 more
| 15:45:32,415 ERROR ExceptionFilter:69 - exception root cause
| javax.faces.el.EvaluationException: /admin/testObjectPage.xhtml @70,64 actionListener="#{ActionBean.saveTestObject}": org.hibernate.validator.InvalidStateException: validation failed for: org.domain.TestObject
| at com.sun.facelets.el.LegacyMethodBinding.invoke(LegacyMethodBinding.java:73)
| at javax.faces.component.UICommand.broadcast(UICommand.java:387)
| at org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:61)
| at org.ajax4jsf.component.UIInclude.broadcast(UIInclude.java:138)
| at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:184)
| at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:162)
| at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:350)
| at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
| at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
| at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
| at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
| at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
| at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
| 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:44)
| 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:273)
| 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.web.LoggingFilter.doFilter(LoggingFilter.java:58)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| 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.servlet.SeamFilter.doFilter(SeamFilter.java:158)
| at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
| at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
| at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
| at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
| at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
| at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
| at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
| at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
| at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
| at org.mortbay.jetty.Server.handle(Server.java:324)
| at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
| at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
| at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648)
| at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
| at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
| at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
| at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
| Caused by: org.hibernate.validator.InvalidStateException: validation failed for: org.domain.TestObject
| at org.hibernate.validator.event.ValidateEventListener.validate(ValidateEventListener.java:148)
| at org.hibernate.validator.event.ValidateEventListener.onPreUpdate(ValidateEventListener.java:177)
| at org.hibernate.action.EntityUpdateAction.preUpdate(EntityUpdateAction.java:217)
| at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:65)
| at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:234)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:142)
| at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
| at org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:41)
| at org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:969)
| at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1114)
| at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
| at org.dao.impl.TestObjectDAOImpl.get(TestObjectDAOImpl.java:18)
| 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:597)
| at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
| at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
| at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106)
| at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:155)
| at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:91)
| at org.dao.impl.TestObjectDAOImpl_$$_javassist_15.get(TestObjectDAOImpl_$$_javassist_15.java)
| at org.service.impl.TestObjectServiceImpl.get(TestObjectServiceImpl.java:23)
| 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:597)
| at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
| at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
| at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106)
| at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:155)
| at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:91)
| at org.service.impl.TestObjectServiceImpl_$$_javassist_12.get(TestObjectServiceImpl_$$_javassist_12.java)
| at org.action.admin.ActionBean.saveTestObject(ActionBean.java:111)
| 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:597)
| at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
| at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
| at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.persistence.ManagedEntityIdentityInterceptor.aroundInvoke(ManagedEntityIdentityInterceptor.java:48)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.core.ConversationInterceptor.aroundInvoke(ConversationInterceptor.java:65)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106)
| at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:155)
| at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:91)
| at org.action.admin.ActionBean_$$_javassist_9.saveTestObject(ActionBean_$$_javassist_9.java)
| 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:597)
| at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:328)
| at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:341)
| at org.jboss.el.parser.AstPropertySuffix.invoke(AstPropertySuffix.java:58)
| at org.jboss.el.parser.AstValue.invoke(AstValue.java:96)
| at org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
| at org.jboss.seam.el.OptionalParameterMethodExpression.invoke(OptionalParameterMethodExpression.java:45)
| at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
| at com.sun.facelets.el.LegacyMethodBinding.invoke(LegacyMethodBinding.java:69)
| ... 45 more
|
AfterTimeValidator works,and isValid returns false.But it is not reflected to the page with a validation message,instead an uncaught exception occurs. I searched this forum,but couldn't find any solution. Please help...
Thanks in advance
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4101082#4101082
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4101082
18 years, 5 months
[JBoss Seam] - Serious Classloader Problems
by rkapil
Our JBoss instance has several JSF web applications with their own JSF implementations, so we had to remove the jars in jbossweb-tomcat55.sar\jsf-libs so they wouldn't conflict.
So now I want to experiment with Seam, but when I try to deploy the 1.2.1.GA examples it starts puking about not having the myfaces classes:
java.lang.ClassNotFoundException: org.apache.myfaces.webapp.StartupServletContextListener
The problem is that adding those myfaces jars to the jboss-seam-booking war's WEB-INF/lib directory just causes other exceptions like:
java.lang.NoClassDefFoundError: javax/faces/context/FacesContext
So I guess my question is this: how do I get this to work? Where should I put the faces jars?
Any help would be much appreciated.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4101081#4101081
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4101081
18 years, 5 months
[JBossCache] - Re: Initial State Transfer Failure
by alauro
and now i'm totally embarrassed. thank you!
| <server>
| <!-- ==================================================================== -->
| <!-- Defines TreeCache configuration -->
| <!-- ==================================================================== -->
|
| <mbean code="org.jboss.cache.aop.TreeCacheAop"
| name="jboss.cache:service=TomcatClusteringCache">
|
| <depends>jboss:service=Naming</depends>
| <depends>jboss:service=TransactionManager</depends>
| <depends>jboss.aop:service=AspectDeployer</depends>
|
| <!--
| Configure the TransactionManager
| -->
| <attribute name="TransactionManagerLookupClass">org.jboss.cache.BatchModeTransactionManagerLookup</attribute>
|
| <!--
| Isolation level : SERIALIZABLE
| REPEATABLE_READ (default)
| READ_COMMITTED
| READ_UNCOMMITTED
| NONE
| -->
| <attribute name="IsolationLevel">REPEATABLE_READ</attribute>
|
| <!--
| Valid modes are LOCAL
| REPL_ASYNC
| REPL_SYNC
| INVALIDATION_ASYNC
| INVALIDATION_SYNC
| -->
| <attribute name="CacheMode">REPL_ASYNC</attribute>
|
| <!--
| Just used for async repl: use a replication queue
| -->
| <attribute name="UseReplQueue">false</attribute>
|
| <!--
| Replication interval for replication queue (in ms)
| -->
| <attribute name="ReplQueueInterval">0</attribute>
|
| <!--
| Max number of elements which trigger replication
| -->
| <attribute name="ReplQueueMaxElements">0</attribute>
|
| <!-- Name of cluster. Needs to be the same for all clusters, in order
| to find each other
| -->
| <attribute name="ClusterName">TreeCache-Cluster</attribute>
|
| <!-- JGroups protocol stack properties. Can also be a URL,
| e.g. file:/home/bela/default.xml
| <attribute name="ClusterProperties"></attribute>
| -->
|
| <attribute name="ClusterConfig">
| <config>
| <UDP mcast_addr="228.1.2.3" mcast_port="48866"
| ip_ttl="64" ip_mcast="true"
| mcast_send_buf_size="150000" mcast_recv_buf_size="80000"
| ucast_send_buf_size="150000" ucast_recv_buf_size="80000"
| loopback="false" bind_addr="192.168.181.190" />
| <PING timeout="2000" num_initial_members="3"
| up_thread="false" down_thread="false"
| initial_hosts="192.168.181.191[48866]"/>
| <MERGE2 min_interval="10000" max_interval="20000"/>
| <FD_SOCK/>
| <VERIFY_SUSPECT timeout="1500"
| up_thread="false" down_thread="false"/>
| <pbcast.NAKACK gc_lag="50" retransmit_timeout="600,1200,2400,4800"
| max_xmit_size="8192" up_thread="false" down_thread="false"/>
| <UNICAST timeout="600,1200,2400" window_size="100" min_threshold="10"
| down_thread="false"/>
| <pbcast.STABLE desired_avg_gossip="20000"
| up_thread="false" down_thread="false"/>
| <FRAG frag_size="8192"
| down_thread="false" up_thread="false"/>
| <pbcast.GMS join_timeout="5000" join_retry_timeout="2000"
| shun="true" print_local_addr="true"/>
| <pbcast.STATE_TRANSFER up_thread="true" down_thread="true"/>
| </config>
| </attribute>
|
| <!--
| Whether or not to fetch state on joining a cluster
| NOTE this used to be called FetchStateOnStartup and has been renamed to be more descriptive.
| -->
| <attribute name="FetchInMemoryState">true</attribute>
|
| <!--
| The max amount of time (in milliseconds) we wait until the
| initial state (ie. the contents of the cache) are retrieved from
| existing members in a clustered environment
| -->
| <attribute name="InitialStateRetrievalTimeout">20000</attribute>
|
| <!--
| Number of milliseconds to wait until all responses for a
| synchronous call have been received.
| -->
| <attribute name="SyncReplTimeout">20000</attribute>
|
| <!-- Max number of milliseconds to wait for a lock acquisition -->
| <attribute name="LockAcquisitionTimeout">15000</attribute>
|
| <!-- Eviction policy defines how long nodes in defined regions stay -->
| <!-- in cache before being removed. In this case a cache entry can -->
| <!-- stay in cache w/out any activity for the specified number of -->
| <!-- seconds. BAM will update timestamp on the record every time -->
| <!-- an interium accounting record is received. Likewise the record -->
| <!-- will be removed when a accounting stop record is received. -->
| <!-- So, this policy is used to remove nodes in cases where an -->
| <!-- accounting stop record is lost. -->
| <!-- -->
| <!-- NOTE: the timeToLiveSeconds must be greater than the time -->
| <!-- used to send interium accouning records. Also /SessionKeys -->
| <!-- and Sessions must have a timeToLiveSeconds > /SessionKeyIndex -->
| <!-- as the indexs have to be removed before the acutal data to -->
| <!-- avoid a race condition. -->
|
| <attribute name="EvictionPolicyConfig">
| <config>
| <attribute name="wakeUpIntervalSeconds">5</attribute>
|
| <!-- See notes above -->
| <region name="/SessionKeyIndex" policyClass="org.jboss.cache.eviction.LRUPolicy">
| <attribute name="maxNodes">0</attribute>
| <attribute name="timeToLiveSeconds">3900</attribute>
| </region>
|
| <!-- See notes above, time must be > than /SessionKeyuIndex -->
| <region name="/SessionKeys" policyClass="org.jboss.cache.eviction.LRUPolicy">
| <attribute name="maxNodes">0</attribute>
| <attribute name="timeToLiveSeconds">3901</attribute>
| </region>
|
| <!-- See notes above, time must be > than /sessionKeyIndex -->
| <region name="/Sessions" policyClass="org.jboss.cache.eviction.LRUPolicy">
| <attribute name="maxNodes">0</attribute>
| <attribute name="timeToLiveSeconds">3902</attribute>
| </region>
|
| <!-- Default Eviction policy for all other Nodes in cache -->
| <region name="/_default_" policyClass="org.jboss.cache.eviction.LRUPolicy">
| <attribute name="maxNodes">0</attribute>
| <attribute name="timeToLiveSeconds">0</attribute>
| </region>
| </config>
| </attribute>
|
| <!--
| Indicate whether to use marshalling or not. Set this to true if you are running under a scoped
| class loader, e.g., inside an application server. Default is "false".
| -->
| <attribute name="UseRegionBasedMarshalling">false</attribute>
| <attribute name="InactiveOnStartup">false</attribute>
| </mbean>
| </server>
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4101079#4101079
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4101079
18 years, 5 months
[JBoss Messaging] - Re: ClientCallback Multiplex
by aslak
The actually issue is not the combination of two providers on the same server, but rather using the jboss.messaging.callback.bind.port variable at all in the application server. I see the same behavior on a single local provider.
When deploying a MDB it first creates a connection to the DLQ, then failes to create a connection to the actual destination.
| 12:41:47,891 ERROR [JmsActivation] Unable to reconnect org.jboss.resource.adapter.jms.inflow.JmsActivationSpec@10f8ed(ra=org.jboss.resource.adapter.jms.JmsResourceAdapter(a)4dd5a1 destination=/queue/jmsxa.in isTopic=false tx=true durable=false reconnect=10 provider=java:/DefaultJMSProvider user=jmsxatest pass=<not shown> maxMessages=1 minSession=1 maxSession=15 keepAlive=60000 useDLQ=true DLQHandler=org.jboss.resource.adapter.jms.inflow.dlq.GenericDLQHandler DLQJndiName=queue/DLQ DLQUser=null DLQMaxResent=5)
| org.jboss.jms.exception.MessagingJMSException: Failed to invoke
| at org.jboss.jms.client.delegate.DelegateSupport.handleThrowable(DelegateSupport.java:269)
| at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.org$jboss$jms$client$delegate$ClientConnectionFactoryDelegate$createConnectionDelegate$aop(ClientConnectionFactoryDelegate.java:187)
| at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate$createConnectionDelegate_N3019492359065420858.invokeNext(ClientConnectionFactoryDelegate$createConnectionDelegate_N3019492359065420858.java)
| at org.jboss.jms.client.container.StateCreationAspect.handleCreateConnectionDelegate(StateCreationAspect.java:83)
| at org.jboss.aop.advice.org.jboss.jms.client.container.StateCreationAspect0.invoke(StateCreationAspect0.java)
| at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate$createConnectionDelegate_N3019492359065420858.invokeNext(ClientConnectionFactoryDelegate$createConnectionDelegate_N3019492359065420858.java)
| at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.createConnectionDelegate(ClientConnectionFactoryDelegate.java)
| at org.jboss.jms.client.JBossConnectionFactory.createConnectionInternal(JBossConnectionFactory.java:205)
| at org.jboss.jms.client.JBossConnectionFactory.createXAQueueConnection(JBossConnectionFactory.java:142)
| at org.jboss.resource.adapter.jms.inflow.JmsActivation.setupQueueConnection(JmsActivation.java:448)
| at org.jboss.resource.adapter.jms.inflow.JmsActivation.setupConnection(JmsActivation.java:422)
| at org.jboss.resource.adapter.jms.inflow.JmsActivation.setup(JmsActivation.java:303)
| at org.jboss.resource.adapter.jms.inflow.JmsActivation.handleFailure(JmsActivation.java:249)
| at org.jboss.resource.adapter.jms.inflow.JmsActivation$SetupActivation.run(JmsActivation.java:589)
| at org.jboss.resource.work.WorkWrapper.execute(WorkWrapper.java:204)
| at org.jboss.util.threadpool.BasicTaskWrapper.run(BasicTaskWrapper.java:275)
| at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:743)
| at java.lang.Thread.run(Thread.java:619)
| Caused by: org.jboss.remoting.InvalidConfigurationException: The invoker for locator (InvokerLocator [bisocket://10.111.111.197:4459/callback?callbackServerHost=10.111.111.197&callbackServerPort=4459&callbackServerProtocol=bisocket&clientMaxPoolSize=200&clientSocketClass=org.jboss.jms.client.remoting.ClientSocketWrapper&datatype=jms&isCallbackServer=true&onewayThreadPool=org.jboss.jms.server.remoting.DirectThreadPool&serverSocketClass=org.jboss.jms.server.remoting.ServerSocketWrapper]) is already in use by another Connector. Either change the locator or add new handlers to existing Connector.
| at org.jboss.remoting.InvokerRegistry.createServerInvoker(InvokerRegistry.java:519)
| at org.jboss.remoting.transport.Connector.init(Connector.java:396)
| at org.jboss.remoting.transport.Connector.create(Connector.java:782)
| at org.jboss.remoting.transport.Connector.start(Connector.java:301)
| at org.jboss.remoting.Client.addListener(Client.java:918)
| at org.jboss.jms.client.remoting.JMSRemotingConnection.addInvokerCallbackHandler(JMSRemotingConnection.java:237)
| at org.jboss.jms.client.remoting.JMSRemotingConnection.start(JMSRemotingConnection.java:316)
| at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.org$jboss$jms$client$delegate$ClientConnectionFactoryDelegate$createConnectionDelegate$aop(ClientConnectionFactoryDelegate.java:154)
| ... 16 more
|
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4101078#4101078
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4101078
18 years, 5 months
[JBossCache] - Re: Initial State Transfer Failure
by alauro
3rd try's a charm:
&server>
<!-- ==================================================================== -->
<!-- Defines TreeCache configuration -->
<!-- ==================================================================== -->
jboss:service=Naming
jboss:service=TransactionManager
jboss.aop:service=AspectDeployer
<!--
Configure the TransactionManager
-->
org.jboss.cache.BatchModeTransactionManagerLookup
<!--
Isolation level : SERIALIZABLE
REPEATABLE_READ (default)
READ_COMMITTED
READ_UNCOMMITTED
NONE
-->
REPEATABLE_READ
<!--
Valid modes are LOCAL
REPL_ASYNC
REPL_SYNC
INVALIDATION_ASYNC
INVALIDATION_SYNC
-->
REPL_ASYNC
<!--
Just used for async repl: use a replication queue
-->
false
<!--
Replication interval for replication queue (in ms)
-->
0
<!--
Max number of elements which trigger replication
-->
0
<!-- Name of cluster. Needs to be the same for all clusters, in order
to find each other
-->
TreeCache-Cluster
<!-- JGroups protocol stack properties. Can also be a URL,
e.g. file:/home/bela/default.xml
-->
<UDP mcast_addr="228.1.2.3" mcast_port="48866"
ip_ttl="64" ip_mcast="true"
mcast_send_buf_size="150000" mcast_recv_buf_size="80000"
ucast_send_buf_size="150000" ucast_recv_buf_size="80000"
loopback="false" bind_addr="192.168.181.190" />
<PING timeout="2000" num_initial_members="3"
up_thread="false" down_thread="false"
initial_hosts="192.168.181.191[48866]"/>
<MERGE2 min_interval="10000" max_interval="20000"/>
<FD_SOCK/>
<VERIFY_SUSPECT timeout="1500"
up_thread="false" down_thread="false"/>
<pbcast.NAKACK gc_lag="50" retransmit_timeout="600,1200,2400,4800"
max_xmit_size="8192" up_thread="false" down_thread="false"/>
<UNICAST timeout="600,1200,2400" window_size="100" min_threshold="10"
down_thread="false"/>
<pbcast.STABLE desired_avg_gossip="20000"
up_thread="false" down_thread="false"/>
<FRAG frag_size="8192"
down_thread="false" up_thread="false"/>
<pbcast.GMS join_timeout="5000" join_retry_timeout="2000"
shun="true" print_local_addr="true"/>
<pbcast.STATE_TRANSFER up_thread="true" down_thread="true"/>
<!--
Whether or not to fetch state on joining a cluster
NOTE this used to be called FetchStateOnStartup and has been renamed to be more descriptive.
-->
true
<!--
The max amount of time (in milliseconds) we wait until the
initial state (ie. the contents of the cache) are retrieved from
existing members in a clustered environment
-->
20000
<!--
Number of milliseconds to wait until all responses for a
synchronous call have been received.
-->
20000
<!-- Max number of milliseconds to wait for a lock acquisition -->
15000
<!-- Eviction policy defines how long nodes in defined regions stay -->
<!-- in cache before being removed. In this case a cache entry can -->
<!-- stay in cache w/out any activity for the specified number of -->
<!-- seconds. BAM will update timestamp on the record every time -->
<!-- an interium accounting record is received. Likewise the record -->
<!-- will be removed when a accounting stop record is received. -->
<!-- So, this policy is used to remove nodes in cases where an -->
<!-- accounting stop record is lost. -->
<!-- -->
<!-- NOTE: the timeToLiveSeconds must be greater than the time -->
<!-- used to send interium accouning records. Also /SessionKeys -->
<!-- and Sessions must have a timeToLiveSeconds > /SessionKeyIndex -->
<!-- as the indexs have to be removed before the acutal data to -->
<!-- avoid a race condition. -->
5
<!-- See notes above -->
0
3900
<!-- See notes above, time must be > than /SessionKeyuIndex -->
0
3901
<!-- See notes above, time must be > than /sessionKeyIndex -->
0
3902
<!-- Default Eviction policy for all other Nodes in cache -->
0
0
<!--
Indicate whether to use marshalling or not. Set this to true if you are running under a scoped
class loader, e.g., inside an application server. Default is "false".
-->
false
false
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4101076#4101076
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4101076
18 years, 5 months