# Joda DateTime in Wicket



## Mehrlin (31. Mai 2012)

Guten Morgen Leute,
ich hab da mal wieder ein kleines Problemchen^^
hab natürlich auch schon danach gegoogelt!! aber des bringt mich leider nicht weiter.

hier mein Problem:
bei dem Versuch eine Joda DateTime in eine Wicket Listview zu packen erscheint folgender Fehler
-->
WicketMessage: Can't instantiate page using constructor public de.jme.basis.web.anwendung.pages.Seite1()

Root cause:

java.lang.ClassNotFoundException: org.joda.time.DateTime
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
at de.jme.holidays.calculator.HolidaysOfYear_Germany.<init>(HolidaysOfYear_Germany.java:73)
at de.jme.holidays.calculator.Holidays.getHolidaysFromGermany(Holidays.java:149)
at de.jme.holidays.calculator.Holidays.getHolidays(Holidays.java:122)
at de.jme.basis.web.anwendung.pages.Seite1.<init>(Seite1.java:28)
<----

Das mit dem falschen Konstruktor ist meines Erachtens völliger Schmarn??!!

habt ihr da Erfahrung mit Joda DateTime in Wicket??
wäre schön wenn mir da jemand weiterhelfen könnte

Gruß Mehrlin


----------



## turtle (31. Mai 2012)

> java.lang.ClassNotFoundException: org.joda.time.DateTime



Die JAR, wahrscheinlich joda-time-2.1.jar, ist unter WEB-INF/lib zu finden?


----------



## Mehrlin (31. Mai 2012)

also hab ich die joda-time-2.1.jar im falschen Unterverzeichnis?


----------



## Mehrlin (31. Mai 2012)

turtle hat gesagt.:


> Die JAR, wahrscheinlich joda-time-2.1.jar, ist unter WEB-INF/lib zu finden?


nein da ist sie nicht drinn


----------



## Mehrlin (31. Mai 2012)

Eclipse will die da i-wie nicht haben.....?? unter Build Path gehts nicht und auf wenn ichs im workspace einbinde interessiert es eclipse nicht...es wird einfach ignoriert


----------



## caleb (1. Jun 2012)

Wie schon Turtle richtig bemerkte, das ist weder ein Joda noch ein Wicketproblem, sondern deine Lib fehlte eben im WEB-INF/lib im resultierenden War.

Mit Maven könntest Du das Problem elegant lösen, indem du die Library im Pom referenzierst. 

Bsp pom.xml: 

[XML]
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <!-- Author:  Du-->
  <!-- Revised: $Author: xy $ -->
  <!-- Version: $Revision: 1053 $  -->
  <modelVersion>4.0.0</modelVersion>

  <artifactId>deine.artifakt.id</artifactId>
  <groupId>deine.gruppe</groupId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>leserlicher name</name>
  <description>was deine app tut</description>

<properties>
    <!-- and for other wicket components the default -->
    <wicket.version>1.4.20</wicket.version>
    <schemaDir>src/schema</schemaDir>
    <netbeans.hint.deploy.server>gfv3ee6</netbeans.hint.deploy.server>
    <project.build.sourceEncoding>ISO-8859-1</project.build.sourceEncoding>
  </properties>

<dependencies>
  <dependency>
      <groupId>org.apache.wicket</groupId>
      <artifactId>wicket</artifactId>
      <version>${wicket.version}</version>
    </dependency>
<dependency>
      <groupId>org.apache.wicket</groupId>
      <artifactId>wicket-extensions</artifactId>
      <version>${wicket.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.wicket</groupId>
      <artifactId>wicket-datetime</artifactId>
      <version>${wicket.version}</version>
    </dependency>
<!-- joda time -->
    <dependency>
      <groupId>joda-time</groupId>
      <artifactId>joda-time</artifactId>
      <version>2.1</version>
    </dependency>
</dependencies>
</dependencies>
<build>
    <resources>
      <resource>
        <filtering>true</filtering>
        <directory>src/main/resources</directory>
        <excludes>
          <exclude>**/*.log4j</exclude>
        </excludes>
      </resource>
      <resource>
        <filtering>false</filtering>
        <directory>src/main/java</directory>
        <includes>
          <include>**</include>
        </includes>
        <excludes>
          <exclude>**/*.java</exclude>
        </excludes>
      </resource>
    </resources>
    <testResources>
      <testResource>
        <filtering>true</filtering>
        <directory>src/test/resources</directory>
      </testResource>
    </testResources>

    <plugins>
      <plugin>
        <inherited>true</inherited>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
          <encoding>ISO-8859-1</encoding>
        </configuration>
      </plugin>

      <plugin>
        <inherited>true</inherited>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <configuration>
          <encoding>ISO-8859-1</encoding>
        </configuration>
      </plugin>
</plugins>
</build>
</project>
[/XML]

Wichtig bei Wicket ist das korrekte Resource Filtering, ansonsten werden die Html Artefakte nicht mit dem War mit deployt. Wenn dir das ganze spanisch vorkommt, lies ein Buch zu Maven oder nutze Alternativen wie Ant/Gradle etc. 

Im Notfall könntest du auch das betreffende Jar ins domain/lib Verzeichnis deines Servers kopieren. Das wäre aber eine ausgesprochen schlechte Lösung, sauberer wäre ein Build Tool einzusetzen.


----------



## Mehrlin (4. Jun 2012)

es war das lib problem...bzw n bug von eclipse. Ich hatte es schon im richtigen Ordner nur die Aktualisierung stimmte nicht.
Danke für eure Hilfe


----------

