EntityConverter with patch for seam 1.2.0
vlaugier Sep 24, 2007 3:05 PMHello,
we have been strugling all day trying to make the patch for EntityConverter work
for seam_EAP 4.2 with integrated seam 1.2.0
we have followed
http://wiki.jboss.org/wiki/Wiki.jsp?page=SeamEntityConverter
but it doesn't work and we are short of ideas now
we get the following error in french
sourceId=createService:radioService[severity=(ERROR 2), summary=(la valeur nest pas valide), detail=(la valeur nest pas valide)]
which I translate as
sourceId=createService:radioService[severity=(ERROR 2), summary=(value is not valid), detail=(value is not valid)]
I put as attachment our code for the web page and the manager (bean + interface)
I know the support is not meant for debugging our code, but in that case I dare to ask since this is a basic functionnality of seam that we expect to work
the web page code
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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"
 xmlns:h="http://java.sun.com/jsf/html"
 xmlns:rich="http://richfaces.ajax4jsf.org/rich"
 xmlns:ec="http://jboss.com/products/seam/entityconverter/taglib"
 template="layout/template.xhtml">
<ui:define name="body">
 <h:messages globalOnly="true" styleClass="message"/>
 <h:form id="createService" styleClass="edit">
 <rich:panel>
 <f:facet name="header">Créer un compte</f:facet>
 <s:validateAll>
 <div class="input">
 <s:decorate template="layout/edit.xhtml">
 <ui:define name="label">nom du service :</ui:define>
 <h:inputText id="login" size="50" value="#{service.name}" required="true" />
 </s:decorate>
 </div>
 <div class="input">
 
 <h:selectOneRadio id="radioService" value="#{selectedService}">
 <s:selectItems value="#{createService.services}" var="row"
 label="#{row.name}" /><br/>
 <ec:convertEntity />
 </h:selectOneRadio>
 </div>
 </s:validateAll>
 </rich:panel>
 <div class="actionButtons">
 <h:commandButton value="Créer le service"
 action="#{createService.createService()}"/>
 </div>
 </h:form>
</ui:define>
</ui:composition>
the manager bean
package fr.helmet.portal.manager;
import fr.helmet.portal.entity.Service;
import java.util.List;
import javax.ejb.Remove;
import javax.ejb.Stateful;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.PersistenceContextType;
import org.jboss.seam.annotations.Create;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Destroy;
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.annotations.Out;
import org.jboss.seam.log.Log;
import org.jboss.seam.core.FacesMessages;
@Stateful
@Name("createService")
public class CreateServiceBean implements CreateService {
 @Logger private Log log;
 @In FacesMessages facesMessages;
 @In (required=false)
 @Out (required=false)
 private Service service;
 @PersistenceContext(type=PersistenceContextType.EXTENDED)
 private EntityManager entityManager;
 @In (required=false)
 private Service selectedService;
 public Service getSelectedService() {
 return selectedService;
 }
 public void setSelectedService(Service selectedService) {
 this.selectedService = selectedService;
 }
 private List<Service> services;
 
 public void createService()
 {
 //implement your business logic here
 //log.info("createService.createService() action called with: #{createService.name}");
 //facesMessages.add("createService #{createService.name}");
 System.out.println("enregistrement du produit");
 if (this.selectedService != null) this.service.setParentService(selectedService);
 entityManager.persist(service);
 this.services.add(service);
 this.service = null;
 }
 //add additional action methods
 @Create
 public void find() {
 this.services = entityManager.createQuery("select c from Service c").getResultList();
 }
 public Service getService() {
 return service;
 }
 public void setService(Service service) {
 this.service = service;
 }
 public List<Service> getServices() {
 return services;
 }
 public void setServices(List<Service> services) {
 this.services = services;
 }
 @Destroy @Remove
 public void destroy() {}
}
hope someone had this problem already
patching old version is such a pain, arghhh !!
 
    