[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