[jboss-user] [JBoss Seam] - Re: how many layer can EL go down?

tim_ph do-not-reply at jboss.com
Wed Aug 15 10:42:40 EDT 2007


I should have provided more context info on this.

This happens on page 2 of a long-running conversation. After user finished page 1, they hit next to go to page two to select value from drop-down list. Boolean value select has no problem.

On page 1, ApplicationEdit.page.xhtml is

  | <?xml version="1.0" encoding="UTF-8"?>
  | <page xmlns="http://jboss.com/products/seam/pages"
  |       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  |       xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.0.xsd"
  |       no-conversation-view-id="/home.xhtml"
  |       login-required="true"
  | >
  |    
  |    <param name="applicationFrom"/>
  |    <param name="applicationId" value="#{applicationHome.applicationId}"/>
  | 
  |    <begin-conversation join="true" flush-mode="manual"/>
  |    
  |    <action execute="#{applicationHome.wire}"/>
  |    
  |    <navigation from-action="#{applicationHome.save}">
  |        <end-conversation/>
  |        <redirect view-id="/Application.xhtml"/>
  |    </navigation>
  |    
  |    <navigation from-action="#{applicationHome.update}">
  |        <end-conversation/>
  |        <redirect view-id="/Application.xhtml"/>
  |    </navigation>
  |    
  |    <navigation from-action="#{applicationHome.remove}">
  |        <end-conversation/>
  |        <redirect view-id="/ApplicationList.xhtml"/>
  |    </navigation>
  |    
  | </page>
  | 

On page 2, ApplicationEdit2.page.xhtml is

  | <?xml version="1.0" encoding="UTF-8"?>
  | <page xmlns="http://jboss.com/products/seam/pages"
  |       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  |       xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.0.xsd"
  |       no-conversation-view-id="/home.xhtml"
  |       login-required="true"
  | >
  |    
  |    <param name="applicationFrom"/>
  | 
  |    <begin-conversation join="true" flush-mode="manual"/>
  |    
  |    <navigation from-action="#{applicationHome.save}">
  |        <end-conversation/>
  |        <redirect view-id="/Application.xhtml"/>
  |    </navigation>
  |    
  |    <navigation from-action="#{applicationHome.update}">
  |        <end-conversation/>
  |        <redirect view-id="/Application.xhtml"/>
  |    </navigation>
  |    
  |    <navigation from-action="#{applicationHome.remove}">
  |        <end-conversation/>
  |        <redirect view-id="/ApplicationList.xhtml"/>
  |    </navigation>
  |    
  | </page>
  | 


  | public class Limit {
  | ...
  | 	public void setValue(String values)
  | 	{
  | 		log.info("set value string " + values);
  | 		super.setValues(values);
  | 		value = values;
  | 	}
  | }
  | 

Here's the exception in the server.log. Notice how it did go into setValue(val) the first time.


  | ,225 INFO  [Limit] set value string $100000
  | ,256 DEBUG [AbstractEntityManagerImpl] Looking for a JTA transaction to join
  | ,256 DEBUG [AbstractEntityManagerImpl] Transaction already joined
  | ,256 DEBUG [AbstractEntityManagerImpl] Looking for a JTA transaction to join
  | ,256 DEBUG [AbstractEntityManagerImpl] Transaction already joined
  | ,256 DEBUG [AbstractEntityManagerImpl] Looking for a JTA transaction to join
  | ,256 DEBUG [AbstractEntityManagerImpl] Transaction already joined
  | ,256 DEBUG [AbstractEntityManagerImpl] Looking for a JTA transaction to join
  | ,256 DEBUG [AbstractEntityManagerImpl] Transaction already joined
  | ,256 DEBUG [jsf.SeamPhaseListener] committing transaction after phase: UPDATE_MODEL_VALUES 4
  | ,256 DEBUG [jsf.SeamPhaseListener] beginning transaction prior to phase: RENDER_RESPONSE 6
  | ,272 DEBUG [AbstractEntityManagerImpl] Looking for a JTA transaction to join
  | ,272 DEBUG [org.hibernate.jdbc.JDBCContext] successfully registered Synchronization
  | ,272 DEBUG [AbstractEntityManagerImpl] Looking for a JTA transaction to join
  | ,272 DEBUG [AbstractEntityManagerImpl] Transaction already joined
  | ,288 DEBUG [AbstractEntityManagerImpl] Looking for a JTA transaction to join
  | ,288 DEBUG [AbstractEntityManagerImpl] Transaction already joined
  | ,288 DEBUG [AbstractEntityManagerImpl] Looking for a JTA transaction to join
  | ,288 DEBUG [AbstractEntityManagerImpl] Transaction already joined
  | ,288 WARN  [javax.enterprise.resource.webcontainer.jsf.renderkit] 'for' attribute cannot be null
  | ,319 DEBUG [AbstractEntityManagerImpl] Looking for a JTA transaction to join
  | ,319 DEBUG [AbstractEntityManagerImpl] Transaction already joined
  | ,319 DEBUG [AbstractEntityManagerImpl] Looking for a JTA transaction to join
  | ,319 DEBUG [AbstractEntityManagerImpl] Transaction already joined
  | ,319 DEBUG [AbstractEntityManagerImpl] Looking for a JTA transaction to join
  | ,319 DEBUG [AbstractEntityManagerImpl] Transaction already joined
  | ,319 DEBUG [AbstractEntityManagerImpl] Looking for a JTA transaction to join
  | ,319 DEBUG [AbstractEntityManagerImpl] Transaction already joined
  | ,350 INFO  [javax.enterprise.resource.webcontainer.jsf.lifecycle] WARNING: FacesMessage(s) have been enqueued, but may not have been displayed.
  | sourceId=application:application_test_deductible[severity=(ERROR 2), summary=(/policy/ApplicationEdit2.xhtml @66,139 value="#{applicationHome.instance.coverage.deductible.value}": Error writing 'value' on type Deductible), detail=(/policy/ApplicationEdit2.xhtml @66,139 value="#{applicationHome.instance.coverage.deductible.value}": Error writing 'value' on type Deductible)]
  | sourceId=application:application_test_limit[severity=(ERROR 2), summary=(/policy/ApplicationEdit2.xhtml @58,123 value="#{applicationHome.instance.coverage.limit.value}": Error writing 'value' on type Limit), detail=(/policy/ApplicationEdit2.xhtml @58,123 value="#{applicationHome.instance.coverage.limit.value}": Error writing 'value' on type Limit)]
  | ,366 DEBUG [jsf.SeamPhaseListener] committing transaction after phase: RENDER_RESPONSE 6
  | ,366 DEBUG [core.Manager] Storing conversation state: 3
  | ,366 DEBUG [contexts.FacesLifecycle] After render response, destroying contexts
  | ,366 DEBUG [contexts.FacesLifecycle] <<< End JSF request
  | 

It does the same thing for Deductible.setValue() that's why you see double ERROR in there. From the log, it does seem to be something with transaction.
Am I doing it right with transaction join there? Let me try conversation-required="true" to see.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4074459#4074459

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4074459



More information about the jboss-user mailing list