2014-11-14 16 views
21

Tôi là một người mới bắt đầu và học tập mùa xuân và ngủ đông (sử dụng maven trong dự án) và tình cờ gặp vấn đề này và đã bị mắc kẹt ở đây. đã cố gắng tìm giải pháp nhưng không kết thúc ở đâu. Hãy giúp tôi. thanks a lotCác lớp cha "javax.servlet.http.HttpServlet" không tìm thấy trên Build Java Đường dẫn

Lỗi: "Không thể tìm thấy các mô tả thẻ thư viện cho" http://java.sun.com/jsp/jstl/core "

Code:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %> 
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %> 

thử các giải pháp được đưa ra trong The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path How do I import the javax.servlet API in my Eclipse project?

Các lỗi vẫn còn hiện diện

pom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>com.journaldev.spring</groupId> 
<artifactId>SpringMVCHibernate</artifactId> 
<name>SpringMVCHibernate</name> 
<packaging>war</packaging> 
<version>1.0.0-BUILD-SNAPSHOT</version> 
<properties> 
    <java-version>1.6</java-version> 
    <org.springframework-version>4.0.3.RELEASE</org.springframework-version> 
    <org.aspectj-version>1.7.4</org.aspectj-version> 
    <org.slf4j-version>1.7.5</org.slf4j-version> 
    <hibernate.version>4.3.5.Final</hibernate.version> 
</properties> 
<dependencies> 
    <!-- Spring --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>${org.springframework-version}</version> 
     <exclusions> 
      <!-- Exclude Commons Logging in favor of SLF4j --> 
      <exclusion> 
       <groupId>commons-logging</groupId> 
       <artifactId>commons-logging</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>${org.springframework-version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-tx</artifactId> 
     <version>${org.springframework-version}</version> 
    </dependency> 

    <!-- Hibernate --> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>${hibernate.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-entitymanager</artifactId> 
     <version>${hibernate.version}</version> 
    </dependency> 

    <!-- Apache Commons DBCP --> 
    <dependency> 
     <groupId>commons-dbcp</groupId> 
     <artifactId>commons-dbcp</artifactId> 
     <version>1.4</version> 
    </dependency> 
    <!-- Spring ORM --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-orm</artifactId> 
     <version>${org.springframework-version}</version> 
    </dependency> 

    <!-- AspectJ --> 
    <dependency> 
     <groupId>org.aspectj</groupId> 
     <artifactId>aspectjrt</artifactId> 
     <version>${org.aspectj-version}</version> 
    </dependency> 

    <!-- Logging --> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>${org.slf4j-version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>jcl-over-slf4j</artifactId> 
     <version>${org.slf4j-version}</version> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>${org.slf4j-version}</version> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.15</version> 
     <exclusions> 
      <exclusion> 
       <groupId>javax.mail</groupId> 
       <artifactId>mail</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>javax.jms</groupId> 
       <artifactId>jms</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>com.sun.jdmk</groupId> 
       <artifactId>jmxtools</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>com.sun.jmx</groupId> 
       <artifactId>jmxri</artifactId> 
      </exclusion> 
     </exclusions> 
     <scope>runtime</scope> 
    </dependency> 

    <!-- @Inject --> 
    <dependency> 
     <groupId>javax.inject</groupId> 
     <artifactId>javax.inject</artifactId> 
     <version>1</version> 
    </dependency> 

    <!-- Servlet --> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet.jsp</groupId> 
     <artifactId>jsp-api</artifactId> 
     <version>2.1</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
    </dependency> 

    <!-- Test --> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.7</version> 
     <scope>test</scope> 
    </dependency> 

</dependencies> 
<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-eclipse-plugin</artifactId> 
      <version>2.9</version> 
      <configuration> 
       <additionalProjectnatures> 
        <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature> 
       </additionalProjectnatures> 
       <additionalBuildcommands> 
        <buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand> 
       </additionalBuildcommands> 
       <downloadSources>true</downloadSources> 
       <downloadJavadocs>true</downloadJavadocs> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.5.1</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
       <compilerArgument>-Xlint:all</compilerArgument> 
       <showWarnings>true</showWarnings> 
       <showDeprecation>true</showDeprecation> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>exec-maven-plugin</artifactId> 
      <version>1.2.1</version> 
      <configuration> 
       <mainClass>org.test.int1.Main</mainClass> 
      </configuration> 
     </plugin> 
    </plugins> 
    <finalName>${project.artifactId}</finalName> 
</build> 

+0

thử thêm các thư viện vào thư mục lib dưới web-inf –

+0

(Tôi không thể nhìn thấy một cái gì đó trên điện thoại di động nhỏ của tôi). Đảm bảo bạn có EE SDK được định nghĩa là phụ thuộc cho dự án của bạn trong phạm vi 'được cung cấp'. THEN: Lỗi xây dựng xảy ra ở đâu? Trong việc xây dựng maven, một nơi nào đó trong IDE của bạn hoặc tại thời gian chạy khi bạn cố gắng truy cập vào ứng dụng của bạn? – JBA

+0

Lỗi xảy ra trong thời gian biên dịch trong IDE.how bao gồm phụ thuộc EE SDK? – user3362080

Trả lời

69

Thêm server tomcat trong thời gian chạy máy chủ sẽ thực hiện công việc:

Project Properties-> Java Build Path-> Add Library -> Select "Server Runtime" from the list-> Next->Select "Apache Tomcat"-> Finish 
+0

Điều này không thực hiện công việc cho tôi. Bạn có thể giúp? – Greyshack

+0

Giải pháp này không hoạt động cho My Eclipse Blue mặc dù tôi đã thêm máy chủ ứng dụng Web sphere làm thời gian chạy đích của tôi –

+0

Điều này không hiệu quả với tôi. Tôi đã chọn máy chủ Glashfish tuy nhiên tôi nhận được lỗi này. – MAC

6

Thêm dưới đây phụ thuộc trong pom.xml, làm việc cho tôi.

<dependency> 
<groupId>javax.servlet</groupId> 
<artifactId>servlet-api</artifactId> 
<version>2.5</version> 
</dependency> 
+0

lúc đầu tôi đã thêm 2.4. Nhưng nhật thực đã phàn nàn trong tệp index.jsp cho thấy chữ thập đỏ với "javax-servlet-http-httpservlet-was-not-found". Khi tôi đổi nó thành 2.5, chữ thập đỏ đã biến mất ngay bây giờ. – Rumel

3

tôi cũng nhận được những lỗi tương tự như trích dẫn dưới đây:

The superclass “javax.servlet.http.HttpServlet” was not found on the Java Build Path.

Tôi đi theo các bước sau để giải quyết vấn đề:

  1. Kích chuột phải vào dự án
  2. Chọn Properties
  3. Chọn các khía cạnh dự án
  4. Chọn Apache Tomcat như Runtime máy chủ
  5. Bấm OK
1

add servlet-api file jar mà hiện diện trong thư mục lib dưới thư mục tomcat. Bạn có thể làm điều này như sau Project -> properties -> Java Build Path -> dưới thư viện bấm thêm lọ bên ngoài sau đó đi đến dự án -> sạch -> xây dựng tất cả. điều này làm việc cho tôi.

0

Thêm tệp servlet-api.jar có trong thư mục lib trong thư mục tomcat. Bạn có thể làm điều này bằng cách sử dụng các bước sau:

1.Select tính của dự án
2.Select Java Build Path
3.Select Libraries Chum
4.Select ngoài
5.Select servlet-api.jar
6. Áp dụng & Ok.

Sự cố phải được giải quyết sau các bước này.

2

cho dự án maven, bạn nên thêm phụ thuộc này

<dependency> 
      <groupId>javax</groupId> 
      <artifactId>javaee-web-api</artifactId> 
      <version>6.0</version> 
      <scope>provided</scope> 
</dependency> 
1

tôi đi qua cùng một vấn đề. Tôi đã thử thêm máy chủ trong "Server Runtime" nhưng tiếc là không làm việc cho tôi. Điều gì phù hợp với tôi là, Tôi đã thêmjavax.servlet-api-3.0.1.jartệp trong đường dẫn xây dựng. Mặt khác Nếu đó là một dự án Maven, hãy thêm sự phụ thuộc vào tệp jar này. Điều này chắc chắn sẽ hoạt động.

Hy vọng điều này sẽ giúp ai đó.

0

Thêm máy chủ Tomcat trong thời gian chạy máy chủ sẽ thực hiện công việc:

Nhấp chuột phải dự án của bạn và hơn;

Thuộc tính dự án → Thời gian chạy mục tiêu → Chọn/Kiểm tra "Apache Tomcat" → Hoàn tất.

0

Tôi đã gặp vấn đề tương tự này và một vài vấn đề khác đang được báo cáo cho dự án maven hiện có.

Tôi đã có các phụ thuộc thích hợp tại chỗ và tôi có thể thấy bình dưới phụ thuộc maven, tuy nhiên dự án đã được đưa vào nhật thực không đúng cách.

Tôi cuối cùng phải xóa dự án, sao chép từ git một lần nữa, sau đó thực hiện nhập dự án dưới dạng dự án maven hiện có.

Điều này giải quyết được vấn đề trong chuỗi này và một số vấn đề khác mà tôi gặp phải. Thêm chi tiết về giải pháp có thể được tìm thấy ở đây: Maven Project in Eclipse `org.springframework cannot be resolved to a type` from target path

0

Luôn kiểm tra nếu file java của bạn là trong src/main/java và không phải trên một số thư mục khác con đường.

+0

Các tệp Java phải nằm trong các thư mục khớp với tên gói ... không chắc liệu câu trả lời của bạn có hoạt động theo cách đó hay không. – GhostCat

0

Hãy thử này - Thêm Tomcat tại thời gian chạy

+1

Tại sao bạn báo giá? –

0

Đối với một dự án Ant:

Hãy chắc chắn rằng, bạn có servlet-api.jar trong thư mục lib.

Đối với một dự án Maven:

Hãy chắc chắn rằng, bạn đã phụ thuộc thêm vào trong pom.xml.

<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>javax.servlet-api</artifactId> 
    <version>3.1.0</version> 
    <scope>provided</scope> 
</dependency> 

Một cách khác để làm điều đó là: Cập nhật các khía cạnh dự án để chọn đúng máy chủ.

Kiểm tra hộp này ở vị trí này:

Project → Properties → Target Runtimes → Apache Tomcat (bất kỳ máy chủ)

0

Hệ thống của bạn có thể có nhiều phiên bản khác nhau tomcat. Bạn có thể thử giải quyết nó.

Kích chuột phải vào Project sau đó chọn Properties, Chọn khía cạnh của dự án và trên phần bên phải, chọn đúng phiên bản Apache Tomcat như Runtimes và bấm ok

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