Struts 1 - struts-taglib.jar nicht gefunden zu werden, durch meine web-Anwendung
Ich bin mit Struts-1
. Ich entwickelte eine struts-basierte web-Anwendung. Ich bin mit struts-tags in meiner JSP-Seiten geliefert, die in struts-taglib.jar
durch einfügen der folgenden Zeilen in der JSP-Datei:
<%@ taglib prefix="html" uri="http://struts.apache.org/tags-html" %>
<%@ taglib prefix="logic" uri="http://struts.apache.org/tags-logic" %>
<%@ taglib prefix="bean" uri="http://struts.apache.org/tags-bean" %>
Nun die Anwendung ist in Ordnung, wenn ich es auf mein lokales System, aber wenn ich installieren Sie es auf einem server, zeigt es die folgende Ausnahme:
org.apache.jasper.JasperException: The absolute uri: http://struts.apache.org/tags-html cannot be resolved in either web.xml or the jar files deployed with this application
Aus der obigen Ausnahme, es scheint, dass die Anwendung nicht gefunden struts-taglib.jar
Datei.
Aber ich habe die struts-taglib.jar
im /WEB-INF/lib
- Verzeichnis. Wo ist dann das problem?
Hinweis: Sie können auch einen Blick auf Java - Problem in der Bereitstellung von Web-Anwendung weitere Informationen
Die
Ich hatte heruntergeladen
Sorry, habe ich übersehen das entscheidende bisschen, dass es funktioniert @local, aber nicht @prod. Dann ich weiß es nicht mehr erwarten, vielleicht ein Zusammenstoß in der classpath-oder eigentlich ein schlecht/falsch bereitstellen.
Ich habe keine classpath-Einträge in der Manifest-Datei des
Können Sie nach dem Inhalt Ihres taglib Einträge in web.xml?
struts-taglib.jar
genau hast du heruntergeladen? Können Sie nach dem download-link/Anleitung hier?Ich hatte heruntergeladen
Struts 1.3.10
und die taglib-jar-Datei name ist struts-taglib-1.3.10.jar
Sorry, habe ich übersehen das entscheidende bisschen, dass es funktioniert @local, aber nicht @prod. Dann ich weiß es nicht mehr erwarten, vielleicht ein Zusammenstoß in der classpath-oder eigentlich ein schlecht/falsch bereitstellen.
Ich habe keine classpath-Einträge in der Manifest-Datei des
war
- Datei, so gibt es keine classpath explizit definiert, so dass ich denke, es gibt keinen Kampf in den classpath... soweit das bereitstellen betroffen ist, klebte ich die gleichen war
Datei auf dem server, klebte ich auf meinem lokalen server. Dann, wo das problem sein könnte?Können Sie nach dem Inhalt Ihres taglib Einträge in web.xml?
InformationsquelleAutor Yatendra Goel | 2010-03-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie sagen, das GLAS scheint in den WEB-INF/lib für die web-app; ich nehme Ihr Wort für es, und glauben Sie.
Ich würde vorschlagen, dass Sie eröffnen die
struts-taglib.jar
öffnen Sie die .tld für die tag-Bibliothek, und stellen Sie sicher, dass der <uri> Wert, finden Sie unter <taglib> root-entspricht der uri für den gegebenen Präfix in Ihrer JSPs. Ich vermute, dass die URI nicht mit dem übereinstimmt, was bedeutet, dass der class-loader nicht in der Lage zu finden, die die tag-Bibliothek, auch wenn die JAR im CLASSPATH.Es kann auch ein Hinweis darauf, ob oder nicht eine version, die änderung der URI in Ihr GLAS und JSP-out-of-synch.
Ich habe gerade heruntergeladen struts-1.3.10-all.zip und schaute auf die struts-logic.tld enthaltenen. Der Wert der
<uri>
tag isthttp://struts.apache.org/tags-logic
, so wie es aussieht bist du in Ordnung dort.Den .tld-Dateien Aussehen, sind Sie ausgelagert aus dem GLAS. Suchen Sie Sie unter .\src\el\src\main\resources\META-INF\tld, lege Sie in dein /WEB-INF ein, und verweisen Sie auf diese explizit in Ihre web.xml. Das sollte Sortieren Sie aus.
Glaube ich nicht .tld in web.xml ist mehr nötig, aber wenn die URI dachte, nicht pan out, können Sie versuchen Sie, etwas ähnlich wie dieses Beispiel aus "JSTL In Action" zu Ihr web.xml (entsprechend modifiziert):
Könnte es sein, weil Struts 1.0 ist eher alt an diesem Punkt. Verpackung die .tld in den Krug, der die taglib wurde eine gängige Praxis, nach der Struts 1.0 entwickelt wurde.
Ich wurde immer diese Fehlermeldung, trotz dass das Glas vorhanden. Dann Fix nach deiner Antwort, und es hat den Fehler behoben.
InformationsquelleAutor duffymo
Ist
/WEB-INF/lib
in den classpath ?Genau. Sie nicht brauchen, um etwas geändert zu bekommen WEB-INF/lib und WEB-INF/classes in Ihrem web-app-CLASSPATH. Es ist das Standard.
InformationsquelleAutor Tom
Nach der Bereitstellung wird die jar-Datei im /WEB-INF/lib ? Wenn nicht, wird man es von hand lösen, das problem?
InformationsquelleAutor kukudas
Prüfen, Ihre URI und URI in der TLD-Datei aus struts-taglib.jar.
Bitte beachten URI wurde vor kurzem geändert: http://wiki.apache.org/struts/StrutsUpgradeNotes12to13
InformationsquelleAutor lzap
Stellen Sie sicher, dass Ihre struts-taglib-1.3.10.jar ist direkt unter /WEB-INF/lib und nicht in einem sub-Ordner wie " /WEB-INF/lib/struts
InformationsquelleAutor Nguyen Tri Tin