2010-03-11 56 views
21

Tôi đã gặp vấn đề sau với máy chủ GoDaddy của tôi. Tôi đang sử dụng JSP với Thư viện JSTL. My/WEB-INF thư mục/lib chứa các thư viện sau:JasperException: tuyệt đối uri: http://java.sun.com/jsp/jstl/core không thể được giải quyết

jstl.jar standard.jar

My JSP trông giống như sau:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 

<p>Hello! <% 
out.print(System.getProperty("java.class.path")); 

%></p> 

Nhưng tôi tiếp tục nhận được ngoại lệ sau đây:

org.apache.jasper.JasperException: The absolute uri: 
    http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml 
    or the jar files deployed with this application 

Bất kỳ ý tưởng nào về lý do khiến điều đó xảy ra?

+0

bạn đang sử dụng phiên bản JSTL nào? –

+0

Như bạn đã đề cập một cách rõ ràng Godaddy, tôi có thể giả định rằng nó "chỉ" hoạt động ở môi trường dev địa phương? Nếu vậy, làm thế nào để 'web.xml' của bạn trông như thế nào? – BalusC

Trả lời

29

Bạn cần tải phiên bản JSTL phù hợp, họ sử dụng các URI khác nhau.

Nếu thiết bị đó không hoạt động, hãy thử: http://download.java.net/maven/1/jstl/jars/jstl-1.2.jar (JSTL 1.2) hoặc kéo xuống 1.1 lọ JSTL.

Có danh sách chi tiết hơn về phiên bản/URI tại coderanch.

+3

hoặc nếu bạn đang sử dụng maven: JSTL JSTL 1,2

+0

Liên kết JavaRanch là chết ... sẽ đã hữu ích hơn để đưa thông tin này ở đây chứ không phải là liên kết với một bên thứ ba trang web. –

4

bạn cần phải thêm Sau file jar trong ứng dụng web của bạn

jakarta-jstl-1.1.2.jar 
and jakarta-standard-1.1.2.jar files 

Gần đây tôi có cùng một vấn đề, mà tôi đã giải quyết bằng cách thêm trên hai tập tin jar

3

tôi đã sử dụng Tomcat6 37. Đối với tôi, tôi đã thử đề cập đến các giải pháp trên nhưng vẫn gặp lỗi. Sự cố được giải quyết sau khi thêm jstl-1.2.jar vào thư mục% CATALINA_HOME% \ lib của tôi.

+0

Điều đó xảy ra vì jstl-1.2.jar bằng cách nào đó không có sẵn, thêm nó vào thư viện máy chủ không phải là một ý tưởng hay, trong khi nó giải quyết được vấn đề. –

3

Câu trả lời ở đây hữu ích để giải thích sự cố nhưng nó không giúp tôi chẩn đoán lý do tại sao nó xảy ra khi tôi nghĩ rằng tôi đang tải các phiên bản JSTL phù hợp. Cuối cùng tôi đã phải gỡ lỗi ứng dụng và đặt một điểm ngắt trong bộ xử lý tệp TLD (có thể là org.apache.jasper.compiler.TagLibraryInfoImpl.getTagLibraryInfos()) để xem từ nơi nó nhận được tệp TLD.

Sau đó tôi phát hiện ra rằng nó đang tải các phiên bản cũ của các tệp TLD từ một cái bình mà tôi không nghi ngờ có chúng - đó là sự phụ thuộc của hệ thống con GWT (ick). Một khi các lọ vi phạm đã được gỡ bỏ khỏi phụ thuộc maven của tôi, vấn đề đã được giải quyết.

Hy vọng điều này sẽ giúp người khác trong tương lai.

+0

Tôi biết nó đã được một thời gian, nhưng tôi đang phải đối mặt với một vấn đề tương tự eerily (cũng với JSTL trong GWT - Tôi giả sử các máy chủ Jetty được sử dụng bởi chế độ siêu dev GWT có cái gì để làm với nó). Bạn có nhớ _which_ lọ đang xúc phạm mà bạn phải xóa để giải quyết vấn đề này không? –

+0

Xin lỗi nhưng tôi không thể nhớ. Tôi nghĩ rằng tôi đã sử dụng chế độ gỡ lỗi và tìm xem tôi đã ở trong cái bình nào khi nó dừng lại. May mắn nhất. – Gray

+0

Không phải lo lắng, cảm ơn - Tôi sẽ xem xét xung quanh và xem tôi có thể tìm thấy cái bình đó không. Không thể tin rằng thật khó để sử dụng GWT với JSTL ... –

Các vấn đề liên quan