수퍼 클래스 "javax.servlet.http.HttpServlet"이 Java 빌드 경로에 없습니다. [중복]
이 질문에는 이미 답변이 있습니다.
Eclipse에서 Maven 통합으로 만든 프로젝트가 있습니다. 모든 것이 잘 작동하지만 모든 JSP 파일의 작업 공간에는 다음이 있습니다.
The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
장소가있는 첫 번째 문자열로 :
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
기본 동적 웹 프로젝트와 JSP를 만들면 오류가 없습니다.
먼저 런타임을 추가하고 프로젝트 특성을 선택하십시오. 그런 다음 이미지에 표시된대로 '런타임'탭에서 서버 이름을 확인하십시오.
servlet-api-3.1.jar
종속성에 포함 하십시오.
메이븐
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency>
그래들
configurations { provided } sourceSets { main { compileClasspath += configurations.provided } } dependencies { provided 'javax.servlet:javax.servlet-api:3.1.0' }
프로젝트 → 속성 → 대상 런타임 → Apache Tomcat 이 나를 위해 일했습니다. 패싯 아래에는 대상 런타임이 없습니다 ( Iclipse v4.2 (Juno)).
Ant 프로젝트의 경우 :
lib
폴더 에 servlet-api.jar이 있는지 확인하십시오 .
Maven 프로젝트의 경우 :
에 종속성이 추가되어 있는지 확인하십시오 POM.xml
.
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
다른 방법 은 프로젝트 패싯을 업데이트하여 올바른 서버를 선택하는 것입니다.
이 위치에서이 확인란을 선택하십시오.
프로젝트 → 속성 → 대상 런타임 → Apache Tomcat (모든 서버)
프로젝트 → 속성 → 대상 런타임 → * Apache Tomcat이 나를 위해 일했습니다. 패싯 아래에는 대상 런타임이 없습니다 ( Iclipse v4.4 (Luna)에 있습니다).
서버 런타임에 Tomcat 서버를 추가하면 다음 작업이 수행됩니다.
프로젝트 속성 → 대상 런타임 → "JBoss 런타임"목록에서 서버를 선택하십시오 →Finish
Apache의 경우 Apache Runtime을 선택할 수 있습니다.
이 단계는 실제로 도움이 될 수 있습니다.
서버를 설치하지 않은 경우 다음 단계를 수행해야합니다.
메뉴 창 → 환경 설정 → Expend 서버 → 런타임 환경 → 추가 → 이름을 선택한 다음 PC에 이미 설치된 Apache 서버 경로를 선택하십시오 (다운로드 및 설치도 가능) → Finish→OK
참고 # 자세한 정보는 여기를 클릭하십시오
Tomcat 서버를 추가하십시오.
프로젝트 속성 → Java 빌드 경로 → 라이브러리 추가 → 목록에서 "서버 런타임"을 선택하십시오. → → 다음 → "Apache Tomcat"을 선택하십시오 →Finish
Ref # 이 답변
pom.xml
파일 에 다음 종속성을 추가 하십시오.
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.2.1</version>
<scope>provided</scope>
</dependency>
서버 런타임에 Tomcat 서버를 추가하면 다음 작업이 수행됩니다.
Project properties → Java Build Path → Add Library → Select "Server Runtime" from the list → Next → Select "Apache Tomcat" → Finish.
Select project → Properties → Project Facets → Target Runtimes → VMware Server.
It worked for me.
If you are not using Maven, just drop the javax.servlet-api.jar in your project lib folder.
As this is unanswered, I am guessing something other than Maven dependencies are wrong with the ops build.
While not using Maven, I have the same problem from time to time when re-creating my development environment from svn, and I always forget why and have to figure it out. Unfortunately it seems this is a problem with Eclipse.
I am able to remove all such errors from once working projects by picking just one of the dynamic web projects, or just tomcat dependent projects, and move a dependency in the build order. This seems to force all projects to rebuild properly and all of the errors are then resolved.
Right click on a web project, select "build Path" -> "Configure Build Path". Go to the tab "Order and Export", then pick a library or jar entry and move it up or down. I used the JRE System Library and moved it to the top.
Click OK, and all that red goes away!
JBoss의 경우 ... 프로젝트 → 빌드 Java 경로 → 외부 JAR 파일 추가를 마우스 오른쪽 버튼으로 클릭하십시오 .
그런 다음 jboss-folder → Common → lib → servlet-api.jar로 이동하십시오.
. . 을 클릭 OK하고 프로젝트를 새로 고친 후 실행하십시오 ...
그리고 어떤 이유로 든 아무것도 작동하지 않으면 명령 행에서 빌드하십시오.
ant -Dj2ee.server.home=D:\apache-tomcat-8.0.23 clean
ant -Dj2ee.server.home=D:\apache-tomcat-8.0.23 compile
ant -Dj2ee.server.home=D:\apache-tomcat-8.0.23 dist
'development' 카테고리의 다른 글
“2의 보완”이란 무엇입니까? (0) | 2020.02.21 |
---|---|
오류 : 요청 엔티티가 너무 큼 (0) | 2020.02.21 |
C # 자체 클래스 이름 얻기 (0) | 2020.02.21 |
PostgreSQL 데이터베이스로 SQL 덤프 가져 오기 (0) | 2020.02.21 |
단위 테스트를 수행 할 때 C # "내부"액세스 수정 자 (0) | 2020.02.21 |