Mad_Hamish
I'm new here

Taglib in Web-Modul einbinden

Hallo zusammen,

ich habe folgendes Problem beim Erstellen eines Web-Moduls:
Das Taglib-Element aus der web.xml meines Moduls landet nicht in der
von FirstSpirit generierten web.xml und somit kann ich die Taglib auch
nicht über <%@ taglib uri="meineLocaleTldDatei"  prefix="pd4ml" %>

auf meinen JSPs referenzieren. Wenn ich das Taglib-Element von

Hand in die web.xml eintrage, läuft alles wie gewünscht.

Das Web-Modul, das ich erstellt habe, dient nur als Library und stellt
Klassen zur Verfügung, die in JSPs benötigt werden. In der web.xml werden
also keine Servlets etc. definiert, es gibt lediglich den Taglib-Eintrag.

Ich hatte mein Modul auch schon vor dem Einbinden der Taglib erfolgreich
installiert. Die grundlegende Struktur scheint also in Ordnung zu sein.
Ich habe auch meine .fsm-Datei in Bezug auf Struktur und Inhalt mit

"fs-integration.fsm" abgeglichen. Vielleicht ist mir aber doch noch etwas
durch die Lappen gegangen und es gibt nocht ein Problem mit der web.xml
oder der modul.xml (beide sind angehängt).

Hat jemand eine Idee?

Grüße
Peter

0 Kudos
9 Replies
boesebeck
Crownpeak employee

Hallo,

intressant wär die Struktur des FSM, wo in welchen Verzeichnissen befinden sich die Dateien?

Schau dir mal bitte folgende Posts an, ich denke die sind ebenfalls eine gute Vorlage.

javascript:; und javascript:;

Hi Gerrit,

ich habe mir die Artikel angeschaut und für mich sieht es so aus, als hätte ich alles richtig gemacht.

Worum es mir geht, ist, dass ich bei der JSP-Direktive <%@ taglib uri="meineLocaleTldDatei"  prefix="pd4ml" %> bei "uri" den Namen eintragen möchte, den ich in der web.xml meines Moduls definiert habe. Konkret würde die Direktive also so aussehen: <%@ taglib uri="pd4ml"  prefix="pd4ml" %>. Aber mein Taglib-Element wird ja leider nicht in die generierte web.xml übernommen. Wenn ich den Eintrag nachträglich von Hand vornehme, funktioniert alles, wie ja schon gesagt. Bei einem neuen Deploy ist dann

mein Hand-Eintrag allerdings logischerweise wieder weg.

Um die Struktur meiner FSM-Datei zu zeigen, habe ich ein JPG an meine Frage angehängt. Vielleicht fällt dir da ja noch etwas auf?

Grüße

Peter

0 Kudos

Hi,

okay dann habe ich dich falsch verstanden. Wenn dein web.xml Teil nicht in der generierten  web.xml auftaucht, sollte man aber eine Fehlermeldung im Log finden.

Was mir nur bei deiner web.xml auffällt, dass bei dir der display-name und die description fehlt

<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app>
  <display-name>the name of this web-app</display-name>
  <description>write whatever you want</description>
</web-app>

Hi,

ich habe in meiner web.xml display-name und description eingefügt, aber geändert hat sich leider nichts.

In welcher Logdatei wäre der Fehler denn zu finden und wie würde der Fehler aussehen, nach dem ich Ausschau halten muss? Im server.log war nichts zu finden, das ich mit dem Deploy des Moduls bzw. der

Erzeugung der web.xml in Zusammenhang hätte bringen können.

0 Kudos

Hallo,

kannst du bitte das komplette Modul anhängen, ich denke das könnte helfen.

LG Gerrit

0 Kudos

Hi,

ich habe die FSM-Datei angehängt.

Viele Grüße

Peter

0 Kudos
rrichter
Occasional Collector

Hallo Peter,

also, dein Modul funktioniert bei mir (4.2.219) einwandfrei.

Folgendes habe ich gemacht:

  • Modul auf Server installiert
  • Projekt ausgewählt
  • Modul unter Web-Komponenten im Projekt hinzugefügt
  • InternalJetty ausgewählt
  • Konfiguration aktiviert bzw. aktualisiert
  • Taglib-Direktive im Seitentemplate eingebaut
  • Beispiel-Tag <pd4:title>Titel</pd4:title> mal irgendwo reingehängt

Ergebnis:


  • Keine Fehlermeldung
  • "korrekte" Verhaltensweise, wenn man mal von der Nutzung des Tags absieht.
  • web.xml auf dem Server im "/web/preview_<project_id>/WEB-INF/"-Verzeichnis wurde korrekt gemerged, d.h. die taglib-Deklaration wurde korrekt eingebaut

Hast du vielleicht irgendeinen Schritt vergessen?

Das Ganze klappt mit tuevlib als einziges aktiviertes Web-Modul aber auch in Kombination mit meinem JSTL-Modul aus javascript:; bzw. zusammen mit fs-integration als WebApp.

1+1=3 for large values of 1.

Hallo Peter,

ich habe es nun mit der Version  : 4.2.216 nachgetestet, auch hier funktioniert es. Ich bin genauso wie Raphael vorgegangen.

Hi zusammen,

ich bin so vorgegangen:

Da das Modul schon in einer Version ohne Taglib installiert war, habe ich es unter Server-Eigenschaften/Module aktualisiert und dann dort über "Verwendungen aktualisieren" im Projekt aktualisiert.

Das Ergebnis war dann das geschilderte, nämlich, dass es einen Fehler bei der Verwendeung der Taglib gab, weil die TLD nicht gefunden wurde.

Fehlt bei meinem Vorgehen vielleicht noch etwas? Macht es einen Unterschied, ob ich "Verwendungen aktualisieren" in den Server-Eigenschaften anstoße oder über die Projekteigenschaften gehe? Ich werde eue Schritte auf jeden Fall nachvollziehen und schauen, ob dann alles glatt läuft.

Grüße

Peter

0 Kudos