2009-05-13 14 views
49

Tôi đã jdk1.6.0_13 cài đặt, nhưng khi tôi cố gắng để tìm một gói javax.servlet, hoặc bấm Ctrl + Space trong Eclipse sau Servlet tôi không thể có được bất cứ điều gì. Tôi có thể tải xuống gói này ở đâu và tại sao nó không được bao gồm trong phân phối chuẩn cho các nhà phát triển?javax.servlet đâu?

Trả lời

82

javax.servlet là một gói thuộc Java EE (Java Enterprise Edition). Bạn đã có JDK cho Java SE (Java Standard Edition).

Bạn có thể sử dụng the Java EE SDK chẳng hạn.

Các thùng chứa servlet đơn giản khác như Apache Tomcat cũng đi kèm với API này (tìm servlet-api.jar).

+11

Tidbit về Tomcat vừa lưu trong ngày. Cảm ơn! – corsiKa

7

Bạn đã lắp đặt J2EE chưa? Nếu bạn cài đặt chỉ tiêu chuẩn (J2SE) nó sẽ không tìm thấy.

4

Các thủ tục bình thường với Eclipse và Java EE webapplications là cài đặt một container servlet (Tomcat, Jetty, vv) hoặc máy chủ ứng dụng (Glassfish (đó là đi kèm trong bản tải xuống "Java của Java", JBoss AS, WebSphere, Weblogic, v.v.) và tích hợp nó trong Eclipse bằng cách sử dụng một plugin (builtin) trong chế độ xem Máy chủ.

Trong trình hướng dẫn tạo mới Dự án web động, sau đó bạn có thể chọn máy chủ tích hợp từ danh sách. Nếu bạn có Dự án web động hiện tại không có máy chủ hoặc muốn thay đổi máy chủ được liên kết, thì bạn cần phải sửa đổi nó trong phần Nhắm mục tiêu theo số lần truy cập thuộc tính của dự án.

Dù bằng cách nào, Eclipse sẽ tự động đặt các thư viện máy chủ cụ thể cần thiết trong đường dẫn lớp của dự án (đường dẫn xây dựng).

Bạn nên hoàn toàn trong không có cách nào trích xuất và sao chép thư viện dành riêng cho máy chủ vào /WEB-INF/lib hoặc thậm chí tệ hơn là tự mình sửa lỗi biên dịch trong Eclipse. Nó sẽ làm cho ứng dụng web của bạn gắn với một máy chủ cụ thể và do đó hoàn toàn không thể chuyển đổi.

20

Một chút chi tiết hơn để Joachim Sauer của câu trả lời:

Trên Ubuntu ít nhất, siêu gói tomcat6 phụ thuộc vào siêu gói tomcat6-common (và những người khác), mà phụ thuộc vào siêu gói libtomcat6-java, mà phụ thuộc vào gói libservlet2.5-java (và những người khác). Nó chứa, trong số những người khác, các tập tin /usr/share/java/servlet-api-2.5.jar/usr/share/java/jsp-api-2.1.jar, đó là các thư viện servlet và JSP bạn cần. Vì vậy, nếu bạn đã cài đặt Tomcat 6 thông qua apt-get hoặc Trung tâm Phần mềm Ubuntu, bạn đã có các thư viện; tất cả những gì còn lại là để Tomcat sử dụng chúng trong dự án của bạn.

Nơi thư viện /usr/share/java/servlet-api-2.5.jar/usr/share/java/jsp-api-2.1.jar trên con đường lớp như thế này:

  • Đối với tất cả các dự án, bằng cách cấu hình Eclipse bằng cách chọn Window -> Preferences -> Java -> JRE cùng cài đặt, sau đó chọn JRE bạn 'lại sử dụng , nhấn Chỉnh sửa, sau đó nhấn Thêm JAR bên ngoài và sau đó bằng cách chọn chọn tệp từ các vị trí được cung cấp ở trên.

  • Đối với chỉ một dự án, bằng cách kích chuột vào dự án trong cửa sổ Project Explorer, sau đó chọn Properties -> Java Build Path, và sau đó nhấn Thêm lọ bên ngoài, và sau đó bằng cách chọn tập tin từ vị trí được nêu ở trên.

Lưu ý thêm 1: Đây là phiên bản chính xác của các thư viện đó để sử dụng với Tomcat 6; đối với các phiên bản Tomcat khác, xem bảng trên trang http://tomcat.apache.org/whichversion.html, mặc dù tôi cho rằng mỗi phiên bản Tomcat đều bao gồm các phiên bản của các thư viện này phù hợp với nó.

Hơn nữa lưu ý 2: Gói libservlet2.5-java 'Mô tả s (dpkg-query -s libservlet2.5-java) nói:' Apache Tomcat thực hiện các Java Servlet và JavaServer Pages (JSP) thông số kỹ thuật của Sun Microsystems, và cung cấp một "tinh khiết Java" HTTP môi trường máy chủ web để chạy mã Java. Gói này chứa thư viện Java Servlet và JSP. '

+2

+1 Cảm ơn bạn đã dành thời gian để thêm vào câu hỏi cũ này. Tôi đang khắc phục sự cố một số phần mềm cũ và câu trả lời này cực kỳ hữu ích! – chris

+0

Bạn được chào đón nhiều nhất! :) –

2

Nếu bạn đã có JDK Java EE với Glassfish, nó nằm trong glassfish3/glassfish/modules/javax.servlet-api.jar.