[JBoss Seam] - Re: Ajax and Pageflow very slow
by pietermartin
Here is is my components.xml
| <bpm:jbpm>
| <bpm:process-definitions>
| </bpm:process-definitions>
| <bpm:pageflow-definitions>
| <value>signUpCustomer.jpdl.xml</value>
| </bpm:pageflow-definitions>
| </bpm:jbpm>
|
I start the pagefloe from capturePhoneDetails.page.xml with
<begin-conversation join="true" pageflow="signupCustomer"/>
here is the pageflow
| <?xml version="1.0"?>
|
| <pageflow-definition xmlns="http://jboss.com/products/seam/pageflow"
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
| xsi:schemaLocation="http://jboss.com/products/seam/pageflow http://jboss.com/products/seam/pageflow-2.0.xsd"
| name="signupCustomer">
|
| <start-page name="capturePhoneDetails" view-id="/signyouup/capturePhoneDetails.xhtml">
| <transition name="next" to="captureContactDetails">
| <action
| expression="#{webCustomerAction.moveTokenToCreateContact}" />
| </transition>
| </start-page>
| <page name="captureContactDetails" view-id="/signyouup/captureContactDetails.xhtml" no-conversation-view-id="/home.xhtml">
| <transition name="back" to="capturePhoneDetails">
| <action expression="#{webCustomerAction.moveTokenToChoosePhone}" />
| </transition>
| <transition name="next" to="captureContactSuccessful">
| <action expression="#{webCustomerAction.persistContact}" />
| <exception-handler exception-class="org.jbpm.JbpmException">
| <action expression="#{webCustomerAction.handleException}" />
| </exception-handler>
| </transition>
| </page>
| <decision name="captureContactSuccessful" expression="#{webCustomerAction.success}">
| <transition name="true" to="creditCheck"></transition>
| <transition name="false" to="failure"></transition>
| </decision>
| <page name="creditCheck" view-id="/signyouup/creditCheck.xhtml" no-conversation-view-id="/home.xhtml">
| <transition name="next" to="creditCheckSuccessful">
| <action expression="#{webCustomerAction.doCreateAccount}" />
| <action expression="#{webCustomerAction.doCreditCheck}" />
| <exception-handler exception-class="org.jbpm.JbpmException">
| <action expression="#{webCustomerAction.handleException}" />
| </exception-handler>
| </transition>
| </page>
| <decision name="creditCheckSuccessful" expression="#{webCustomerAction.success}">
| <transition name="false" to="failure"></transition>
| <transition name="true" to="capturePaymentDetails"></transition>
| </decision>
| <page name="capturePaymentDetails" view-id="/signyouup/capturePayment.xhtml" no-conversation-view-id="/home.xhtml">
| <redirect />
| <transition name="next" to="captureDeliveryDetails">
| <action expression="#{webCustomerAction.moveTokenToCaptureDeliveryDetails}" />
| </transition>
| </page>
| <page name="captureDeliveryDetails" view-id="/signyouup/captureDeliveryDetails.xhtml" no-conversation-view-id="/home.xhtml">
| <transition name="next" to="confirmTakePayment">
| <action expression="#{webCustomerAction.moveTokenToTakePayment}" />
| </transition>
| <transition name="back" to="capturePaymentDetails">
| <action expression="#{webCustomerAction.moveTokenToCaptureBankDetails}" />
| </transition>
| </page>
| <page name="confirmTakePayment" view-id="/signyouup/confirmTakePayment.xhtml" no-conversation-view-id="/home.xhtml">
| <transition name="next" to="salesOrderSuccessful">
| <action expression="#{webCustomerAction.doSalesOrder}" />
| <exception-handler exception-class="org.jbpm.JbpmException">
| <action expression="#{webCustomerAction.handleException}" />
| </exception-handler>
| </transition>
| <transition name="back" to="captureDeliveryDetails">
| <action expression="#{webCustomerAction.moveTokenToCaptureDeliveryDetails}" />
| </transition>
| </page>
| <decision name="salesOrderSuccessful" expression="#{webCustomerAction.success}">
| <transition name="false" to="failure"></transition>
| <transition name="true" to="success"></transition>
| </decision>
| <page name="success" view-id="/signyouup/success.xhtml" no-conversation-view-id="/home.xhtml">
| <end-conversation />
| <transition name="toBeginning" to="capturePhoneDetails" />
| </page>
| <page name="failure" view-id="/error.xhtml">
| <end-conversation />
| </page>
| </pageflow-definition>
|
Here is my backing bean
| package com.yannitech.virgin.selfcare.customer.manager;
|
| import java.text.SimpleDateFormat;
| import java.util.Date;
|
| import org.jboss.seam.ScopeType;
| import org.jboss.seam.annotations.Factory;
| import org.jboss.seam.annotations.In;
| import org.jboss.seam.annotations.Logger;
| import org.jboss.seam.annotations.Name;
| import org.jboss.seam.annotations.Out;
| import org.jboss.seam.annotations.Scope;
| import org.jboss.seam.faces.FacesMessages;
| import org.jboss.seam.log.Log;
| import org.jbpm.graph.action.SeamedAction;
| import org.jbpm.graph.exe.ExecutionContext;
|
| import com.yannitech.virgin.selfcare.common.enums.Contact_TypeEnum;
| import com.yannitech.virgin.selfcare.customer.entity.Contact;
|
| @Name("webCustomerAction")
| @Scope(ScopeType.CONVERSATION)
| public class WebCustomerAction extends SeamedAction {
|
| @Logger
| private Log log;
|
| @In
| private FacesMessages facesMessages;
|
| @In(create=true)
| private ContactManager contactManager;
|
| @In(create=true)
| @Out
| private Contact newContact;
|
| private boolean success = Boolean.TRUE;
|
| // @CreateProcess(definition="SignUpCustomerBP", processKey="syu#{syuProcessKey}")
| public void startBusinessProcess() {
| log.info("startBusinessProcess SignUpCustomerBP");
| }
|
| // @Transition("toCreateContact")
| public void moveTokenToCreateContact() {
| log.info("moveTokenToCreateContact");
| }
|
| // @Transition("toChoosePhone")
| public void moveTokenToChoosePhone() {
|
| }
|
| // @Transition("toFailure")
| public void moveTokenToFailure() {
|
| }
|
| public void persistContact() {
| log.info("persistContact");
| newContact.setType(Contact_TypeEnum.CONSUMER);
| // contactManager.persist(newContact);
| // BusinessProcess.instance().transition("toCreateAccount");
| }
|
| public void doCreateAccount() {
| log.info("doCreateAccount");
| // BusinessProcess.instance().transition("toCreditCheckContact");
| }
|
| public void doCreditCheck() {
| log.info("doCreditCheck");
| // BusinessProcess.instance().transition("toCaptureBankDetails");
| }
|
| public void moveTokenToCaptureDeliveryDetails() {
| log.info("moveTokenToCaptureDeliveryDetails");
| // BusinessProcess.instance().transition("toCaptureDelivery");
| }
|
| // @Transition("toCaptureBankDetails")
| public void moveTokenToCaptureBankDetails() {
| log.info("moveTokenToCaptureBankDetails");
| }
|
| // @Transition("toTakePayment")
| public void moveTokenToTakePayment() {
| log.info("moveTokenToTakePayment");
| }
|
| public void doSalesOrder() {
| log.info("doSalesOrder");
| // BusinessProcess.instance().transition("toComplete");
| }
|
| public Contact getNewContact() {
| return newContact;
| }
|
| public void setNewContact(Contact newContact) {
| this.newContact = newContact;
| }
|
| @Factory(value="syuProcessKey",scope=ScopeType.EVENT)
| public String getProcessKey() {
| SimpleDateFormat sdf = new SimpleDateFormat();
| return sdf.format(new Date());
| }
|
| public void handleException() {
| ExecutionContext executionContext = ExecutionContext.currentExecutionContext();
| facesMessages.add(executionContext.getException().getCause().getMessage());
| success=false;
| // BusinessProcess.instance().transition("toFailure");
| }
|
| public boolean isSuccess() {
| return success;
| }
|
| public void setSuccess(boolean success) {
| this.success = success;
| }
|
| }
|
my jsf page
| <ui:composition xmlns="http://www.w3.org/1999/xhtml"
| xmlns:s="http://jboss.com/products/seam/taglib"
| xmlns:ui="http://java.sun.com/jsf/facelets"
| xmlns:f="http://java.sun.com/jsf/core"
| xmlns:h="http://java.sun.com/jsf/html"
| xmlns:rich="http://richfaces.ajax4jsf.org/rich"
| xmlns:a="https://ajax4jsf.dev.java.net/ajax"
| template="../layout/template.xhtml">
|
| <ui:define name="body">
| <h:messages globalOnly="true" styleClass="message" />
| <h:form>
| <a:outputPanel id="phoneOutput">
| <s:decorate id="phoneMakeDecorate" template="../layout/edit.xhtml">
| <ui:define name="label">Phone Make:</ui:define>
| <h:selectOneMenu value="#{selectedPhoneMake}" converter="#{phoneManager.phoneMakeConverter}">
| <s:selectItems value="#{phoneMakes}" var="phoneMake"
| label="#{phoneMake.name}" noSelectionLabel="Please select" />
| <a:support event="onchange"
| actionListener="#{phoneManager.findWebPhoneModelsForMake}"
| reRender="phoneOutput" requestDelay="500" />
| </h:selectOneMenu>
| </s:decorate>
| <s:decorate id="phoneModelDecorate" template="../layout/edit.xhtml">
| <ui:define name="label">Phone Model:</ui:define>
| <h:selectOneMenu value="#{selectedPhoneSalesChannel}" converter="#{phoneManager.phoneConverter}">
| <s:selectItems value="#{phoneSalesChannels}" var="phoneSalesChannel"
| label="#{phoneSalesChannel.phone.phoneModel.name} #{phoneSalesChannel.phone.pack}"
| noSelectionLabel="Please select" />
| <a:support event="onchange"
| actionListener="#{phoneManager.selectPhoneSalesChannel}"
| reRender="phoneOutput" requestDelay="500" />
| </h:selectOneMenu>
| </s:decorate>
| <s:decorate id="phonePriceDecorate" template="../layout/display.xhtml">
| <ui:define name="label">Price:</ui:define>
| <h:outputText value="#{selectedPhoneSalesChannel.price}" />
| </s:decorate>
| <s:graphicImage rendered="#{picture ne null}" value="#{picture}">
| <s:transformImageSize width="200" maintainRatio="true" />
| </s:graphicImage>
| </a:outputPanel>
| <s:decorate id="installmentTermDecorate" template="../layout/edit.xhtml">
| <ui:define name="label">Installment Term:</ui:define>
| <h:selectOneMenu value="#{webSalesOrderManager.webProductOrderIssue.vm_Installment_TermEnum}">
| <s:selectItems value="#{vmInstallment_TermEnums}" var="installment" label="#{installment.name}" noSelectionLabel="Please select" />
| <s:convertEnum />
| <a:support event="onblur" reRender="installmentTermDecorate" requestDelay="500" />
| </h:selectOneMenu>
| </s:decorate>
| <s:decorate id="ratePlanDecorate" template="../layout/edit.xhtml">
| <ui:define name="label">Rate Plan:</ui:define>
| <h:selectOneMenu value="#{webSalesOrderManager.webProductOrderIssue.ratePlan}">
| <s:selectItems value="#{ratePlans}" var="ratePlan" label="#{ratePlan.name}" noSelectionLabel="Please select" />
| <s:convertEntity />
| <a:support event="onblur" reRender="ratePlanDecorate" requestDelay="500" />
| </h:selectOneMenu>
| </s:decorate>
| <s:decorate id="upfrontAmountDecorate1" template="../layout/edit.xhtml">
| <ui:define name="label">Upfront Amount:</ui:define>
| <h:inputText id="upfrontAmountId1" value="#{webSalesOrderManager.webProductOrderIssue.upfrontAmount}">
| <a:support event="onblur" reRender="upfrontAmountDecorate1" requestDelay="500" />
| </h:inputText>
| </s:decorate>
| <s:decorate id="upfrontAmountDecorate" template="../layout/edit.xhtml">
| <ui:define name="label">Upfront Amount:</ui:define>
| <h:inputText id="upfrontAmountId" value="#{webSalesOrderManager.webProductOrderIssue.upfrontAmount}">
| <a:support event="onblur" reRender="upfrontAmountDecorate" requestDelay="500" />
| </h:inputText>
| </s:decorate>
| <h:commandButton id="next" value="Next" action="next" />
| </h:form>
| </ui:define>
| </ui:composition>
|
I have removed all busines process stuff. The behavior is the same with or without the business process code.
The slowness is on any of the jsf elements with an ajax onblur event.
I changed the dvd example app to use some ajax and I see the same behavior there.
It is a lot faster though probably due to the db being in memory hypersonic whereas I am using mysql in my app.
Cheers
Pieter
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4108426#4108426
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4108426
18 years, 7 months
[Security & JAAS/JBoss] - Can't get Trace output from JBoss Login Modules
by AsafM
Hi guys,
I'm trying to debug JBoss DatabaseServerLoginModule. This Login Module and its parent classes all use:
| if (log.isTraceEnabled())
| {
| log.trace("...";
| }
|
For debugging.
I've used the FAQ Instructions and updated log4j (file is followed).
The problem: The trace messages are not written to the server.log file. I do get messages from the JaasSecurityManager, but nothing from the login modules.
Here's my log4j:
| <?xml version="1.0" encoding="UTF-8"?>
| <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
|
| <!-- ===================================================================== -->
| <!-- -->
| <!-- Log4j Configuration -->
| <!-- -->
| <!-- ===================================================================== -->
|
| <!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
|
| <!--
| | For more configuration infromation and examples see the Jakarta Log4j
| | owebsite: http://jakarta.apache.org/log4j
| -->
|
| <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
|
| <!-- ================================= -->
| <!-- Preserve messages in a local file -->
| <!-- ================================= -->
|
| <!-- A time/date based rolling appender -->
| <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
| <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
| <param name="File" value="${jboss.server.home.dir}/log/server.log"/>
| <param name="maxFileSize" value="10MB"/>
| <param name="maxBackupIndex" value="100"/>
| <param name="Append" value="false"/>
|
| <layout class="org.apache.log4j.PatternLayout">
| <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
| </layout>
| </appender>
|
| <!-- A time/date based rolling appender -->
| <appender name="AUDIT" class="org.jboss.logging.appender.RollingFileAppender">
| <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
| <param name="File" value="${jboss.server.home.dir}/log/audit.log"/>
| <param name="maxFileSize" value="10MB"/>
| <param name="maxBackupIndex" value="100"/>
| <param name="Append" value="false"/>
|
| <layout class="org.apache.log4j.PatternLayout">
| <param name="ConversionPattern" value="%d %-5p %m%n"/>
| </layout>
| </appender>
|
| <appender name="UCL" class="org.apache.log4j.RollingFileAppender">
| <param name="File" value="${jboss.server.home.dir}/log/ucl.log"/>
| <param name="MaxFileSize" value="5MB"/>
| <param name="MaxBackupIndex" value="1"/>
| <layout class="org.apache.log4j.PatternLayout">
| <param name="ConversionPattern" value="[%r,%c{1},%t] %m%n"/>
| </layout>
| </appender>
|
|
| <!-- A size based file rolling appender
| <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
| <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
| <param name="File" value="${jboss.server.home.dir}/log/server.log"/>
| <param name="Append" value="false"/>
| <param name="MaxFileSize" value="500KB"/>
| <param name="MaxBackupIndex" value="1"/>
|
| <layout class="org.apache.log4j.PatternLayout">
| <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
| </layout>
| </appender>
| -->
|
| <!-- ============================== -->
| <!-- Append messages to the console -->
| <!-- ============================== -->
|
| <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
| <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
| <param name="Target" value="System.out"/>
| <param name="Threshold" value="DEBUG"/>
|
| <layout class="org.apache.log4j.PatternLayout">
| <!-- The default pattern: Date Priority [Category] Message\n -->
| <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
| </layout>
| </appender>
|
| <!-- ====================== -->
| <!-- More Appender examples -->
| <!-- ====================== -->
|
| <!-- Buffer events and log them asynchronously
| <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
| <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
| <appender-ref ref="FILE"/>
| <appender-ref ref="CONSOLE"/>
| <appender-ref ref="SMTP"/>
| </appender>
| -->
|
| <!-- EMail events to an administrator
| <appender name="SMTP" class="org.apache.log4j.net.SMTPAppender">
| <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
| <param name="Threshold" value="ERROR"/>
| <param name="To" value="admin(a)myhost.domain.com"/>
| <param name="From" value="nobody(a)myhost.domain.com"/>
| <param name="Subject" value="JBoss Sever Errors"/>
| <param name="SMTPHost" value="localhost"/>
| <param name="BufferSize" value="10"/>
| <layout class="org.apache.log4j.PatternLayout">
| <param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/>
| </layout>
| </appender>
| -->
|
| <!-- Syslog events
| <appender name="SYSLOG" class="org.apache.log4j.net.SyslogAppender">
| <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
| <param name="Facility" value="LOCAL7"/>
| <param name="FacilityPrinting" value="true"/>
| <param name="SyslogHost" value="localhost"/>
| <layout class="org.apache.log4j.PatternLayout">
| <param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/>
| </layout>
| </appender>
| -->
|
| <!-- Log events to JMS (requires a topic to be created)
| <appender name="JMS" class="org.apache.log4j.net.JMSAppender">
| <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
| <param name="Threshold" value="ERROR"/>
| <param name="TopicConnectionFactoryBindingName" value="java:/ConnectionFactory"/>
| <param name="TopicBindingName" value="topic/MyErrorsTopic"/>
| </appender>
| -->
|
| <!-- Log events through SNMP
| <appender name="TRAP_LOG" class="org.apache.log4j.ext.SNMPTrapAppender">
| <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
| <param name="ImplementationClassName" value="org.apache.log4j.ext.JoeSNMPTrapSender"/>
| <param name="ManagementHost" value="127.0.0.1"/>
| <param name="ManagementHostTrapListenPort" value="162"/>
| <param name="EnterpriseOID" value="1.3.6.1.4.1.24.0"/>
| <param name="LocalIPAddress" value="127.0.0.1"/>
| <param name="LocalTrapSendPort" value="161"/>
| <param name="GenericTrapType" value="6"/>
| <param name="SpecificTrapType" value="12345678"/>
| <param name="CommunityString" value="public"/>
| <param name="ForwardStackTraceWithTrap" value="true"/>
| <param name="Threshold" value="DEBUG"/>
| <param name="ApplicationTrapOID" value="1.3.6.1.4.1.24.12.10.22.64"/>
| <layout class="org.apache.log4j.PatternLayout">
| <param name="ConversionPattern" value="%d,%p,[%t],[%c],%m%n"/>
| </layout>
| </appender>
| -->
|
| <!-- Emit events as JMX notifications
| <appender name="JMX" class="org.jboss.monitor.services.JMXNotificationAppender">
| <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
|
| <param name="Threshold" value="WARN"/>
| <param name="ObjectName" value="jboss.system:service=Logging,type=JMXNotificationAppender"/>
|
| <layout class="org.apache.log4j.PatternLayout">
| <param name="ConversionPattern" value="%d %-5p [%c] %m"/>
| </layout>
| </appender>
| -->
|
| <!-- ================ -->
| <!-- Limit categories -->
| <!-- ================ -->
|
| <!-- Auditing: don't send auditing info to console, only to audit log -->
| <category name="com.srndpt.audit" additivity="false">
| <priority value="ALL"/>
| <appender-ref ref="AUDIT"/>
| </category>
|
| <!-- Show Serendipity info -->
| <category name="com.srndpt">
| <priority value="INFO"/>
| </category>
|
|
| <!-- Limit the org.apache category to INFO as its DEBUG is verbose -->
| <category name="org.apache">
| <priority value="INFO"/>
| </category>
|
| <!-- Limit the org.jgroups category to WARN as its INFO is verbose -->
| <category name="org.jgroups">
| <priority value="WARN"/>
| </category>
|
| <!-- Limit jboss axis to INFO as its DEBUG is even more verbose -->
| <category name="org.jboss.axis">
| <priority value="INFO"/>
| </category>
|
| <category name="org.jboss.mx.loading" additivity="false">
| <priority value="WARN" class="org.jboss.logging.XLevel"/>
| <appender-ref ref="UCL"/>
| </category>
|
| <!-- Limit JBoss categories -->
| <category name="org.jboss">
| <priority value="INFO"/>
| </category>
|
| <!-- Limit the JSR77 categories -->
| <category name="org.jboss.management">
| <priority value="INFO"/>
| </category>
|
| <!-- Limit JBoss webservice category
| <category name="org.jboss.webservice">
| <priority value="DEBUG"/>
| </category>
| -->
|
| <!-- Decrease the priority threshold for the org.jboss.varia category
| <category name="org.jboss.varia">
| <priority value="DEBUG"/>
| </category>
| -->
|
| <!-- Limit Hibernate categories -->
|
| <category name="org.hibernate.event.def.AbstractFlushingEventListener">
| <priority value="FATAL"/>
| </category>
|
|
| <category name="org.apache.commons.httpclient.HttpMethodBase">
| <priority value="ERROR"/>
| </category>
|
|
| <category name="org.hibernate.util.JDBCExceptionReporter">
| <priority value="FATAL"/>
| </category>
|
| <category name="org.hibernate.type">
| <priority value="INFO"/>
| </category>
|
| <category name="org.hibernate.loader.Loader">
| <priority value="INFO"/>
| </category>
|
| <category name="org.hibernate.hql.ast">
| <priority value="INFO"/>
| </category>
|
| <category name="org.hibernate.jdbc.AbstractBatcher">
| <priority value="INFO"/>
| </category>
|
| <category name="org.hibernate.event.def.DefaultInitializeCollectionEventListener">
| <priority value="INFO"/>
| </category>
|
| <category name="org.hibernate.engine.CollectionLoadContext">
| <priority value="INFO"/>
| </category>
|
| <category name="org.springframework.jdbc.support.SQLErrorCodesFactory">
| <priority value="INFO"/>
| </category>
|
| <category name="org.hibernate.hql.antlr.HqlSqlBaseWalker">
| <priority value="INFO"/>
| </category>
|
| <category name="org.hibernate.engine.query.HQLQueryPlan">
| <priority value="INFO"/>
| </category>
|
| <category name="org.hibernate.engine.query.QueryPlanCache">
| <priority value="INFO"/>
| </category>
|
| <!-- Show the evolution of the DataSource pool in the logs [inUse/Available/Max]
| <category name="org.jboss.resource.connectionmanager.JBossManagedConnectionPool">
| <priority value="TRACE" class="org.jboss.logging.XLevel"/>
| </category>
| -->
|
| <!--
| | An example of enabling the custom TRACE level priority that is used
| | by the JBoss internals to diagnose low level details. This example
| | turns on TRACE level msgs for the org.jboss.ejb.plugins package and its
| | subpackages. This will produce A LOT of logging output.
| <category name="org.jboss.system">
| <priority value="TRACE" class="org.jboss.logging.XLevel"/>
| </category>
| <category name="org.jboss.ejb.plugins">
| <priority value="TRACE" class="org.jboss.logging.XLevel"/>
| </category>
| -->
|
| <!--
| | Logs these events to SNMP:
| - server starts/stops
| - cluster evolution (node death/startup)
| - When an EJB archive is deployed (and associated verified messages)
| - When an EAR archive is deployed
|
| <category name="org.jboss.system.server.Server">
| <priority value="INFO" />
| <appender-ref ref="TRAP_LOG"/>
| </category>
|
| <category name="org.jboss.ha.framework.interfaces.HAPartition.lifecycle">
| <priority value="INFO" />
| <appender-ref ref="TRAP_LOG"/>
| </category>
|
| <category name="org.jboss.deployment.MainDeployer">
| <priority value="ERROR" />
| <appender-ref ref="TRAP_LOG"/>
| </category>
|
| <category name="org.jboss.ejb.EJBDeployer">
| <priority value="INFO" />
| <appender-ref ref="TRAP_LOG"/>
| </category>
|
| <category name="org.jboss.deployment.EARDeployer">
| <priority value="INFO" />
| <appender-ref ref="TRAP_LOG"/>
| </category>
|
| -->
|
|
| <category name="org.jboss.security">
| <priority value="TRACE" class="org.jboss.logging.XLevel"/>
| </category>
| <category name="org.jboss.web.tomcat.security">
| <priority value="TRACE" class="org.jboss.logging.XLevel"/>
| </category>
| <category name="org.apache.catalina">
| <priority value="DEBUG"/>
| </category>
|
|
| <!-- ======================= -->
| <!-- Setup the Root category -->
| <!-- ======================= -->
|
| <!-- In production root should only goes to log file -->
| <root>
| <priority value="INFO"/>
| <appender-ref ref="FILE"/>
| <appender-ref ref="CONSOLE"/>
| </root>
|
| <!-- Clustering logging -->
| <!-- Uncomment the following to redirect the org.jgroups and
| org.jboss.ha categories to a cluster.log file.
|
| <appender name="CLUSTER" class="org.jboss.logging.appender.RollingFileAppender">
| <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
| <param name="File" value="${jboss.server.home.dir}/log/cluster.log"/>
| <param name="Append" value="false"/>
| <param name="MaxFileSize" value="500KB"/>
| <param name="MaxBackupIndex" value="1"/>
|
| <layout class="org.apache.log4j.PatternLayout">
| <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
| </layout>
| </appender>
| <category name="org.jgroups">
| <priority value="DEBUG" />
| <appender-ref ref="CLUSTER"/>
| </category>
| <category name="org.jboss.ha">
| <priority value="DEBUG" />
| <appender-ref ref="CLUSTER"/>
| </category>
| -->
|
| </log4j:configuration>
|
Thank you,
Asaf
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4108422#4108422
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4108422
18 years, 7 months
[JBoss Seam] - IllegalStateException: EntityManager is closed (on event sco
by MSchmidke
Seam 2.0.GA
Hello all,
I am accessing Hibernate session via JPA delegate as suggested in chapter 8.4. So I have the following lines in my components.xml:
| <persistence:managed-persistence-context name="entityManager" auto-create="true" persistence-unit-jndi-name="java:/EntityManagerFactories/Argos3EJBPU" />
| <factory name="session" scope="STATELESS" auto-create="true" value="#{entityManager.delegate}" />
|
This allows the Hibernate session to be injected into my Session Bean.
This worked very well for me until I first time used an EVENT scoped stateful session bean.
With the event scoped bean, there is a problem in the @Remove method (the method is empty, but Seam requires one to be there) which gives the following exception:
| 13:02:25,091 WARN [Component] Exception calling stateful session bean default @Remove method: aufgabenliste
| javax.ejb.EJBException: javax.el.ELException: Error reading 'delegate' on type org.jboss.seam.persistence.EntityManagerProxy
| at org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:63)
| at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:83)
| ...
| Caused by: javax.el.ELException: Error reading 'delegate' on type org.jboss.seam.persistence.EntityManagerProxy
| at javax.el.BeanELResolver.getValue(BeanELResolver.java:66)
| at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
| at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64)
| at org.jboss.el.parser.AstPropertySuffix.getValue(AstPropertySuffix.java:53)
| at org.jboss.el.parser.AstValue.getValue(AstValue.java:67)
| at org.jboss.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
| at org.jboss.seam.core.Expressions$1.getValue(Expressions.java:112)
| at org.jboss.seam.Component.getInstanceFromFactory(Component.java:1906)
| ...
| Caused by: java.lang.IllegalStateException: EntityManager is closed
| at org.hibernate.ejb.EntityManagerImpl.getSession(EntityManagerImpl.java:42)
| at org.hibernate.ejb.AbstractEntityManagerImpl.getDelegate(AbstractEntityManagerImpl.java:570)
| at org.jboss.seam.persistence.EntityManagerProxy.getDelegate(EntityManagerProxy.java:95)
| ...
|
Am I doing something wrong or is this an error?
Marcus.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4108421#4108421
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4108421
18 years, 7 months