[jboss-user] [JBoss Seam] - Migration from seam 1.2.1, jboss 4.0.5 to seam 2.0.1 jboss 4

gjeudy do-not-reply at jboss.com
Wed Feb 6 11:07:29 EST 2008


Hi,

I have scrutinously followed the seam2migration.txt instructions and decided to use JSF1.2 and sun EL RI as recommended by the docs. I was able to deploy my project but then I got some Duplicate _getId exceptions triggered by JBoss AOP (looks like an incompatibility between jboss AOP and hibernate) more details on my post in JBoss AOP forum: http://www.jboss.com/index.html?module=bb&op=viewtopic&t=129436. 

These exceptions don't prevent me of displaying a facelet page, it looks like its generated properly but whenever I click a commandButton or commandLink I get immediate response (simply rerenders the same page) from the server no log output except for a few enigmatic entries like the below:

10:24:56,178 WARN  [renderkit] 'for' attribute cannot be null

My guess is that the binding with seam is not happening otherwise I would at least see some seam log output.

below is the facelet page being tested 

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
  | 	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:s="http://jboss.com/products/seam/taglib" template="template.xhtml">
  | 
  | 	<ui:define name="body">
  | 
  | 		<script type="text/javascript"
  | 			src="seam/resource/remoting/resource/remote.js"></script>
  | 		<script type="text/javascript"
  | 			src="seam/resource/remoting/interface.js?packageEditAction"></script>
  | 		<script type="text/javascript" src="rdm.js"></script>
  | 		<h:messages for="packageForm" />
  | 
  | 		<h:form id="packageForm">
  | 			<fieldset>
  | 			<table border="1">
  | 				<tr>
  | 					<td width="100%" colspan="3" align="center">
  | 					<h4>Release Packages</h4>
  | 					</td>
  | 				</tr>
  | 				<tr>
  | 					<td width="50%"><b>Select a Release Package: </b> 
  | 					</td>
  | 				</tr>
  | 				<tr>
  | 					<td width="50%"><h:selectOneListbox 
  | 						id="existrel" value="#{relPkg}" required="false" size="20">
  | 						<s:selectItems value="#{releasePackagesResult}" var="relPkg"
  | 							label="#{relPkg.releasePackageId}--#{relPkg.releasePackageNm}" />
  | 						<s:convertEntity />
  | 					</h:selectOneListbox></td>
  | 				</tr>	
  | 			</table>
  | 
  | 			<s:decorate template="decorateField.xhtml">
  | 				<h:commandButton value="Manage Release Package Items"
  | 					action="#{packageEditAction.selectReleasePackage}" />
  | 			</s:decorate>
  | 			<s:decorate template="decorateField.xhtml">
  | 				<h:commandButton value="Enter Release Package"
  | 					action="#{packageEditAction.enterReleasePackage}" />
  | 			</s:decorate>			
  | 			</fieldset>
  | 			<fieldset>
  | 			<s:decorate template="decorateField.xhtml">
  | 				<h:commandLink value="Create Release Package"
  | 					action="/createreleasepackage.seam" />
  | 			</s:decorate></fieldset>
  | 		</h:form>
  | 		<ui:debug hotkey="p" rendered="true"/>
  | 	</ui:define>
  | </ui:composition>

packageEditAction:

@Stateful
  | @Scope(ScopeType.SESSION)
  | @Name("packageEditAction")
  | public class PackageEditActionBean implements PackageEditActionLocal {
  | 
  | 	@PersistenceContext(unitName="ReferenceDataManagerDB",type=PersistenceContextType.EXTENDED)
  | 	private EntityManager em;
  | 
  | 	@Logger
  | 	private Log log;
  | 	
  | 	@In(required = true, create=true)
  | 	@Out(required = true, scope = ScopeType.SESSION)
  | 	private ReleasePackageService releasePackageService;
  | 	
  | 	@In(required = true, create=true)
  | 	@Out(required = true, scope = ScopeType.SESSION)
  | 	private ReferenceDomainService referenceDomainService;
  | 	
  | 	@In(required = false)
  | 	@Out(required = false)
  | 	private List<RefReleasePackage> releasePackagesResult;
  | 	
  | 	@In(required = false)
  | 	@Out(required = false, scope = ScopeType.SESSION)
  | 	private RefReleasePackage refpackage;
  | 	
  | 	@In(required = false)
  | 	@Out(required = false)
  | 	private List<ReferenceDomain> selectedRefDomains;
  | 	
  | 	@In(required = false)
  | 	@Out(required = false)
  | 	private RefReleasePackage relPkg;
  | 	
  | 	
  | 	@In(required = false)
  | 	@Out(required = false, scope = ScopeType.SESSION)
  | 	private List<ReferenceDomain> refDomains = new ArrayList<ReferenceDomain>();
  | 	
  | 	@Factory("releasePackagesResult")
  | 	public void initAllReleasePackages() {
  | 		log.debug("Inside ReleasePackageBean.initAllReleasePackages");
  | 		releasePackagesResult = releasePackageService.findAllReleasePackages();
  | 	}
  | 	
  | 	@Factory("refDomains")
  | 	public void initRefDomains() {
  | 		log.debug("Inside ReleasePackageBean.initRefDomains");
  | 		refDomains = referenceDomainService.findAllReferenceDomains();
  | 	}
  | 	
  | 	/**
  | 	 * 
  | 	 * @return
  | 	 */
  | 	public String selectReleasePackage() {
  | 		log.debug("Inside selectReleasePackage");
  | 		return "/editPackageItems.seam";
  | 	}
  | 	
  | 	public String enterReleasePackage() {
  | 		releasePackageService.gotoWorkspace(relPkg);
  | 		refDomains.clear();
  | 		
  | 		return "/rdm.seam";
  | 	}
  | 	
  | 	@Destroy
  | 	@Remove
  | 	public void destroy() {
  | 			}
  | 
  | 
  | 	public ReleasePackageService getReleasePackageService() {
  | 		return releasePackageService;
  | 	}
  | 
  | 	public void setReleasePackageService(ReleasePackageService releasePackageService) {
  | 		this.releasePackageService = releasePackageService;
  | 	}

I compared my setup against the seam-booking example packaged in seam 2.0.1 distribution and I cannot find any differences. This code works perfectly in seam 1.2.1 jboss 4.0.5

Anyone has any ideas ?




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

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



More information about the jboss-user mailing list