2009-07-31 10 views
1

Ich erstelle eine benutzerdefinierte Taglib mit. Tag-Dateien. Alles funktioniert super, außer wenn ich 2 Seiten gleichzeitig lade. Es scheint, dass die .tag-Dateien bei jeder Anfrage neu kompiliert werden und die Nebenläufigkeit dazu führt, dass die Kompilierung fehlschlägt.Benutzerdefinierte Taglib - .tag Dateien werden bei jeder Anfrage neu kompiliert. Ist das normal?

Ist dies normales Verhalten für .tag-Dateien? Ich hätte erwartet, dass sie nur einmal zusammengestellt werden. Gibt es eine Möglichkeit, die erneute Kompilierung zu verhindern?

Die .tag-Dateien befinden sich in einer JAR-Datei, die wie im lib-Verzeichnis meiner WAR-Datei enthalten ist. Ich bin auf JBoss 4.2.1 bereitstellen, wenn das wichtig ist.

Danke.

Antwort

1

Woher wissen Sie, dass JBoss das Tag bei jeder Anfrage neu kompiliert? Haben Sie direkte Beweise oder nur das Nebenläufigkeitsproblem? Was ist dieses Nebenläufigkeitsproblem? Eine Stapelverfolgung? Wenn ja, bitte posten Sie es.

Wenn JBoss eine JSP oder eine Tagdatei kompiliert, behält es die Compilerversion in seinem Verzeichnis tmp/oder work/(kann sich nicht erinnern, welche). Schauen Sie sich dort um, um zu sehen, ob Sie es finden können (es wird eine .class-Datei mit einem Namen sein, der der Tagdatei ähnelt). Wenn das Tag tatsächlich jedes Mal neu kompiliert wird, wird diese Datei jedes Mal aktualisiert. Wenn yoy die Klassendatei überhaupt nicht finden kann, kann es sein, dass JBoss die temporäre kompilierte Version nicht erstellen kann (möglicherweise aufgrund eines Dateiberechtigungsproblems) und daher gezwungen ist, jedes Mal neu zu kompilieren.

+0

Ich weiß, dass es jedes Mal neu kompiliert wird, da der Zeitstempel für die Dateien .java und .class im Arbeitsverzeichnis mit jeder Anforderung aktualisiert wird. Aus Ihrer Antwort scheint es, dass es in der Tat NICHT normal ist, dass die .tag jedes Mal neu kompiliert wird. Mein Verständnis ist, dass es neu kompiliert werden würde, wenn die ursprüngliche .tag-Datei geändert wurde (Prüfsumme oder Timestamp?). Irgendwelche anderen Umstände, die das verursachen würden? Ich habe jetzt nicht den Stacktrace (musste jetzt für eine Deadline aufgeben), aber ich glaube wirklich nicht, dass es relevant ist, da es nur während gleichzeitiger Neukompilierungen fehlschlägt. –

+0

Es ist relevant, weil der JSP-Compiler keine Probleme mit dem gemeinsamen Zugriff haben sollte, also bezweifle ich, dass es das ist. – skaffman