Hi,

i got this error, and have to glue how to fix it. Because i got serveral other T5 apps with Timestamp without this issue.

Information: [ERROR] ioc.Registry No service implements the interface java.util.Date.
Information:   [ERROR] ioc.Registry Operations trace:
Information: [ERROR] ioc.Registry [ 1] Handling traditional 'action' component event request for Tank:tankform.form. Information: [ERROR] ioc.Registry [ 2] Triggering event 'action' on Tank:tankform.form Information: [ERROR] ioc.Registry [ 3] Instantiating new instance of de.aeits.erda.ccis.mariadb.Tanken Information: [ERROR] ioc.Registry [ 4] Creating plan to instantiate de.aeits.erda.ccis.mariadb.Tanken via public de.aeits.erda.ccis.mariadb.Tanken(java.util.Date,int,int,java.lang.String,int,int) Information: [ERROR] ioc.Registry [ 5] Determining injection value for parameter #1 (java.util.Date) Information: [ERROR] ioc.Registry [ 6] Resolving object of type java.util.Date using MasterObjectProvider Information: [ERROR] TapestryModule.RequestExceptionHandler Processing of request failed with uncaught exception: org.apache.tapestry5.runtime.ComponentEventException: Exception instantiating instance of de.aeits.erda.ccis.mariadb.Tanken (for component 'Tank:tankform.editor'): org.apache.tapestry5.ioc.internal.OperationException: No service implements the interface java.util.Date. [at classpath:org/apache/tapestry5/corelib/components/BeanEditForm.tml, line 2] org.apache.tapestry5.runtime.ComponentEventException: Exception instantiating instance of de.aeits.erda.ccis.mariadb.Tanken (for component 'Tank:tankform.editor'): org.apache.tapestry5.ioc.internal.OperationException: No service implements the interface java.util.Date. [at classpath:org/apache/tapestry5/corelib/components/BeanEditForm.tml, line 2] at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.processEventTriggering(ComponentPageElementImpl.java:1126)



package de.aeits.ccis.pages;

import de.aeits.ccis.components.Layout;
import de.aeits.erda.ccis.mariadb.Tanken;
import de.aeits.erda.ccis.mssql.Adresse;
import de.aeits.erda.ccis.mssql.AuftragFahrzeug;
import de.aeits.erda.ccis.mssql.Fahrzeug;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import org.apache.shiro.authz.annotation.RequiresAuthentication;
import org.apache.tapestry5.annotations.Component;
import org.apache.tapestry5.annotations.InjectPage;
import org.apache.tapestry5.annotations.Log;
import org.apache.tapestry5.annotations.Persist;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.beaneditor.BeanModel;
import org.apache.tapestry5.corelib.components.BeanEditForm;
import org.apache.tapestry5.jpa.annotations.CommitAfter;
import org.apache.tapestry5.services.BeanModelSource;
import org.slf4j.Logger;

/**
 *
 * @author andreas
 */
@RequiresAuthentication
public class Tank {


  @PersistenceContext(unitName = "de.aeits_ERDA-CCIS-EJB_ejb_1.01PU")
  private EntityManager entityManager;
  @PersistenceContext(unitName = "de.aeits_ERDA-CCIS-EJB_ejb_1.0PU")
  private EntityManager entityManagerMS;
  private Query query;

  @Component(id = "tankForm")
  private BeanEditForm tankForm;
  @InjectPage
  private Tank indexPage;

  @Property
  private Tanken tanken;

  @Property
  private Fahrzeug fahrzeug;

  private Adresse adresse;

  @Property
  private String email, fahrer;

  @Property
  @Persist
  String selectedValue;//= "UTA";
  @Property
  @Persist
  String fahrzeugValue;// = "WWFD9988";

  private final Locale locale = Locale.getDefault();
  private Calendar jetzt = Calendar.getInstance(locale);
  @Property
  private Date datzeit = new Date();

  @Property
  List<String> fahrzeuge;

  @Log
  void setupRender() throws Exception {
    jetzt = Calendar.getInstance();
    try {
adresse = entityManagerMS.find(Adresse.class, Layout.getAdresse().getIDAdresse());
      query = entityManagerMS.createNamedQuery("Fahrzeug.findByEigene");
      List<Fahrzeug> fahrzeugListe = query.getResultList();
      fahrzeuge = new ArrayList();
      for (Fahrzeug fahrzeug1 : fahrzeugListe) {
        fahrzeuge.add(fahrzeug1.getKennzeichen());
      }
adresse.getIDAdresse().intValue());
      tanken = new Tanken(datzeit, 1, 1, "UTA", 600, 109585);
      fahrer = adresse.getSuchName();
query = entityManagerMS.createNamedQuery("AuftragFahrzeug.findByFahrer");
      query.setParameter("iDFahrer", adresse.getIDAdresse());
      query.setParameter("datzeit", jetzt.getTime());
      List<AuftragFahrzeug> auftragFahrzeug = query.getResultList();
      for (AuftragFahrzeug at : auftragFahrzeug) {
if (String.valueOf(at.getIDAuftragFS().getStatus()).equals("F") | String.valueOf(at.getIDAuftragFS().getStatus()).equals("R")) {
        }
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
    selectedValue = "UTA";
  }

  @Log
  @CommitAfter
  @PersistenceContext(unitName = "de.aeits_ERDA-CCIS-EJB_ejb_1.01PU")
  void onValidateFromTankForm() {
    try {
query = entityManagerMS.createNamedQuery("Fahrzeug.findByKennzeichen");
      query.setParameter("kennzeichen", fahrzeug);
      int fahrzeug_nr = (int) query.getSingleResult();
      tanken.setFahrzeug(fahrzeug_nr);
      entityManager.persist(tanken);
    } catch (Exception e) {
      tankForm.recordError("Der Tankvorgang konnte nicht gespeichert!");
    }
  }

  Object onSuccess() {
    return indexPage;
  }

  public String getDateFieldFormat() {
    return "dd.MM.yyyy hh:mm:ss";
  }
}




<html t:type="layout" title="${message:title} - Tanken"
      xmlns:t="http://tapestry.apache.org/schema/tapestry_5_4.xsd";
      xmlns:p="tapestry:parameter">

  <h1>ERDA CCIS - Tanken - ${fahrer}</h1>
<!--<t:form t:id="tankForm" object="tanken" t:model="model" submitLabel="speichern">-->
  <t:form t:id="tankForm" object="tanken" submitLabel="speichern">
    <t:errors/>
    <p:datzeit>
       <t:label for="datzeit">Datum/Uhrzeit</t:label>
<input t:id="datzeit" t:type="datefield" value="datzeit" t:context="tanken.datzeit" t:format="prop:dateFieldFormat"/>
    </p:datzeit>
    <p:fahrzeug>
       <t:label for="fahrzeug">Fahrzeug</t:label>
<t:Select t:id="fahrzeug" t:context="fahrzeug.kennzeichen" model="fahrzeuge" t:value="fahrzeugValue"/>
    </p:fahrzeug>
    <p:tankkarte>
       <t:label for="tankkarte">Tankkarte</t:label>
<t:Select t:id="tankkarte" t:model="literal:UTA, AS24, DTS, ESSO, BAR" t:value="selectedValue"/>
    </p:tankkarte>
  </t:form>
  <br/>
</html>





package de.aeits.erda.ccis.mariadb;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author andreas
 */
@Entity
@Table(name = "tanken")
@XmlRootElement
@NamedQueries({
  @NamedQuery(name = "Tanken.findAll", query = "SELECT t FROM Tanken t"),
@NamedQuery(name = "Tanken.findByDatzeit", query = "SELECT t FROM Tanken t WHERE t.datzeit = :datzeit"), @NamedQuery(name = "Tanken.findByFahrer", query = "SELECT t FROM Tanken t WHERE t.fahrer = :fahrer"), @NamedQuery(name = "Tanken.findByFahrzeug", query = "SELECT t FROM Tanken t WHERE t.fahrzeug = :fahrzeug"), @NamedQuery(name = "Tanken.findByTankkarte", query = "SELECT t FROM Tanken t WHERE t.tankkarte = :tankkarte"), @NamedQuery(name = "Tanken.findByLiter", query = "SELECT t FROM Tanken t WHERE t.liter = :liter"), @NamedQuery(name = "Tanken.findByKilometer", query = "SELECT t FROM Tanken t WHERE t.kilometer = :kilometer")})
public class Tanken implements Serializable {

  private static final long serialVersionUID = 1L;
  @Id
  @Basic(optional = false)
  @NotNull
  @Column(name = "datzeit")
  @Temporal(TemporalType.TIMESTAMP)
  private Date datzeit;
  @Basic(optional = false)
  @NotNull
  @Column(name = "fahrer")
  private int fahrer;
  @Basic(optional = false)
  @NotNull
  @Column(name = "fahrzeug")
  private int fahrzeug;
  @Basic(optional = false)
  @NotNull
  @Size(min = 1, max = 10)
  @Column(name = "tankkarte")
  private String tankkarte;
  @Basic(optional = false)
  @NotNull
  @Column(name = "liter")
  private int liter;
  @Basic(optional = false)
  @NotNull
  @Column(name = "kilometer")
  private int kilometer;

  public Tanken() {
  }

  public Tanken(Date datzeit) {
    this.datzeit = datzeit;
  }

public Tanken(Date datzeit, int fahrer, int fahrzeug, String tankkarte, int liter, int kilometer) {
    this.datzeit = datzeit;
    this.fahrer = fahrer;
    this.fahrzeug = fahrzeug;
    this.tankkarte = tankkarte;
    this.liter = liter;
    this.kilometer = kilometer;
  }

  public Date getDatzeit() {
    return datzeit;
  }

  public void setDatzeit(Date datzeit) {
    this.datzeit = datzeit;
  }

  public int getFahrer() {
    return fahrer;
  }

  public void setFahrer(int fahrer) {
    this.fahrer = fahrer;
  }

  public int getFahrzeug() {
    return fahrzeug;
  }

  public void setFahrzeug(int fahrzeug) {
    this.fahrzeug = fahrzeug;
  }

  public String getTankkarte() {
    return tankkarte;
  }

  public void setTankkarte(String tankkarte) {
    this.tankkarte = tankkarte;
  }

  public int getLiter() {
    return liter;
  }

  public void setLiter(int liter) {
    this.liter = liter;
  }

  public int getKilometer() {
    return kilometer;
  }

  public void setKilometer(int kilometer) {
    this.kilometer = kilometer;
  }

  @Override
  public int hashCode() {
    int hash = 0;
    hash += (datzeit != null ? datzeit.hashCode() : 0);
    return hash;
  }

  @Override
  public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
    if (!(object instanceof Tanken)) {
      return false;
    }
    Tanken other = (Tanken) object;
if ((this.datzeit == null && other.datzeit != null) || (this.datzeit != null && !this.datzeit.equals(other.datzeit))) {
      return false;
    }
    return true;
  }

  @Override
  public String toString() {
    return "de.aeits.erda.ccis.mariadb.Tanken[ datzeit=" + datzeit + " ]";
  }
}


Do i need a ValueEncoder Class for the timestamp?

Thanks
Andy
--
ae | Andreas Ernst | IT Spektrum
Postfach 5, 65612 Beselich
Schupbacher Str. 32, 65614 Beselich, Germany
Tel: +49-6484-91002 Fax: +49-6484-91003
a...@ae-online.de | www.ae-online.de
www.tachyon-online.de

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to