터미널에서 작동하는 동안 스택 추적없이 "로컬 호스트의 서버 Tomcat v7.0 서버를 시작하지 못했습니다."


81

그래서 주말 전에 잘 작동 한이 프로젝트를 얻었습니다 (다른 문제가 있지만 적어도 Tomcat이 시작되었습니다). 이제 Tomcat 서버를 시작하려고하면 즉시 다음 오류가 발생합니다.

Server Tomcat v7.0 Server at localhost failed to start.

그러나 터미널을 통해 Tomcat을 정상적으로 시작할 수 있으며이 문제는 Eclipse ( 웹 개발자 용 Eclipse Java EE IDE. 버전 : Juno Service Release 1 Build id : 20121004-1855 )에서 발생합니다.

해결책을 찾기 위해 여러 포럼을 샅샅이 뒤졌지만 소용이 없었습니다! 도움이 필요한 사람을 도와주세요.


전체 스택 추적 오류를 게시 하시겠습니까?
Ami 2011

@ILLA가 없습니다. 그냥. 그것에 대해 이상한 것은 ... 어느입니다
마빈 으론

좋은 질문입니다. 내가 만난 가장 이상한 오류. Mime은 Fedora 17에서 발생했습니다. eclipse는 Fedora repo에서 다운로드됩니다.
huahsin68

Servers 폴더에서 특정 폴더를 삭제하고 Eclipse에서 Server를 제거한 다음 Eclipse에서 새 서버를 생성하여 해결 (서버 탭)
CodyBugstein 2014 년

4
이것은 개발자가 직면하는 일반적인 문제 중 하나입니다. 경험상 대부분의 경우 오류가 web.xml 파일 때문이라고 조언 할 수 있습니다. 새로 생성 된 서블릿 및 서블릿 매핑 태그를 제거하십시오.
Prateek Joshi

답변:


58

이 문제를 해결하려면 .snap다음 디렉터리에 있는 파일 을 삭제해야 합니다.

<workspace-directory>\.metadata\.plugins\org.eclipse.core.resources

이 파일을 삭제하면 문제없이 Eclipse를 시작할 수 있습니다.


33
이 파일은 어디에 있습니까? 나는 그런 파일이 없다
윌리엄 Kinaan

18
해당 디렉토리에는 이러한 파일이 없습니다.
MrYo

34
@MarvinEffing이 파일을 삭제했지만 도움이되지 않았습니다!
Lrrr

1
이것은 나를 위해 일했지만 그 이유 를 설명해 주 시겠습니까? 이 파일은 무엇입니까? 왜 오류가 발생합니까? 또한 파일을 볼 수없는 사람들에게 : 이클립스를 다시 시작해보세요. 그게 제가해야 할 일입니다.
Kevin Workman

1
스냅 파일 (0.snap)을 삭제 한 후 eclipse로 이동하여 서버를 마우스 오른쪽 버튼으로 클릭하고 Clean을 선택했습니다. 그런 다음 서버를 시작하면 작동합니다.
sunlover3

104
  1. Windows →보기 표시 → 서버 메뉴에서 서버 탭을 엽니 다.

  2. 서버를 마우스 오른쪽 버튼으로 클릭하고 삭제하십시오.

  3. 새로 만들기 → 서버 탭의 서버로 이동하여 새 서버를 만듭니다.

  4. "런타임 환경 구성…"링크를 클릭하십시오.

  5. Apache Tomcat v7.0 서버를 선택하고 제거하십시오. Tomcat 서버 구성이 제거됩니다. 이것은 많은 사람들이 실수를하는 곳입니다. 그들은 서버를 제거하지만 런타임 환경을 제거하지는 않습니다.

  6. 확인을 클릭하고 지금 위의 화면을 종료하십시오.

  7. 아래 화면에서 Apache Tomcat v7.0 서버를 선택하고 다음 버튼을 클릭합니다.

  8. Tomcat 설치 디렉토리 찾아보기

  9. 다음을 클릭하고 배포 할 프로젝트를 선택합니다.

  10. 프로젝트 추가 후 완료를 클릭하십시오.

  11. 이제 서버를 시작하십시오. 이렇게하면 서버 시간 초과 또는 이전 서버 구성의 문제가 해결됩니다. 이 솔루션은 "포트 업데이트가 발생하지 않음"문제를 해결하는데도 사용할 수 있습니다.


12
불행하게도이 아무것도 해결되지 않습니다 ... 이클립스 케플러, 윈도우 7 32 비트, 톰캣 7 ... 난 아직도 진정한 해결책을 찾고 있어요
미클로스 Krivan

2
이클립스에서 바람둥이 구성을 제거하고 서버를 다시 추가했습니다. 나를 위해 일했습니다. Eclipse Juno.
user2771655 2014 년

1
Thnks 많은 친구! 그래서 Runtime Environment를 제거하면 Tric이 수행됩니까?
Rahal Kanishka

1
@MiklosKrivan이 말했듯이-이것은 나에게도 효과가 없지만 다른 사람에게 왜 & 어떻게 작동하는지 궁금하며 차례로 왜 나에게 적합하지 않은지 알고 싶습니다.
nightfury

37

이 문제를 해결하려면 다음 디렉터리에서 tmp 폴더 를 삭제해야합니다.

<workspace-directory>\.metadata\.plugins\org.eclipse.wst.server.core

이 폴더를 삭제하는 데 문제가 있으면 Eclipse를 다시 시작한 다음 해당 폴더를 다시 삭제하십시오.


폴더 폴더의 이름이 보이지 않습니다. 나는 우분투 12.04를 사용하고 있습니다
MMMMS

@MMMMS, 숨겨진 파일 및 디렉토리 앞에 점이 있습니다. 대부분 * 괜찬아 시스템에서, 당신은 LS -a와 같은 파일과 디렉토리를 검색 할 수 있습니다
FRK

22

제 경우에는 문제가 xml어떻게 든 코드에있었습니다.

web.xml파일은 다음과 같습니다.

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
    <display-name>Archetype Created Web Application</display-name>

    <servlet>
        <servlet-name>index</servlet-name>
        <jsp-file>index.jsp</jsp-file>
    </servlet>

    <servlet-mapping>
        <servlet-name>index</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

하지만 나는 그것을 다음과 같이 변경했습니다.

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
    <display-name>Archetype Created Web Application</display-name>

</web-app>

이제 서버가 제대로로드됩니다. 이상한.


2
@WevServlet부적절한 경로 가있는 주석과 비슷한 문제가있었습니다 .
thomas88wp 2015-06-02

2
정확히 @ thomas88wp, 주석 @WebServlet을 사용하고 서블릿 매핑을 삭제하거나 그 반대입니다. 덕분에 당신은 내 문제 : 해결
L.Zaki

감사합니다! 나는 내 머리를 낚아 채고 있었지만 이것이 도움이되었습니다!
Shivangi Gupta 2017

15

localhost의 Server Tomcat v7.0 서버를 시작하지 못했습니다.

이 오류는 다음 세 가지 경우에 해결됩니다.

1. 프로젝트 및 서버 정리

또는

2.이 디렉터리에서 .snap 파일을 제거합니다.

<workspace-directory>\.metadata\.plugins\org.eclipse.core.resources

또는

3.이 디렉토리에서 임시 파일 제거

<workspace-directory>\.metadata\.plugins\org.eclipse.wst.server.core

1
임시 폴더를 삭제했는데 이제 서버가 성공적으로 시작되지만 웹 응용 프로그램이 실행되지 않습니다.
라훌 Munjal

Eclipse 2019-03 및 Tomcat 8.5.43으로 Ubuntu 18.04에서 나를 위해 일했습니다. :)
yanike

톰캣 및 정화를 마우스 오른쪽 클릭
Chinmoy

13

서블릿 클래스와 web.xml에서 서블릿 매핑을 정의했기 때문에이 문제가 발생했습니다.

서블릿 클래스와 web.xml에 서블릿 매핑을 정의했는지 확인해야합니다.

1) 삭제 @WebServlet("...")

@WebServlet("/Login")
public class Login extends HttpServlet {
}

또는

2) 삭제 <servlet></servlet> <servlet-mapping></servlet-mapping>

<servlet>
    <servlet-name>ServletLogin</servlet-name>
    <servlet-class>Login</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>ServletLogin</servlet-name>
    <url-pattern>/login</url-pattern>
</servlet-mapping>

이유:

서블릿 3.0을 지원하는 아파치 톰캣 7.0을 사용합니다.

Java EE 주석을 사용하면 표준 web.xml 배포 설명자는 다음과 같습니다.

선택 과목. 서블릿 3.0 사양에 따르면

http://jcp.org/en/jsr/detail?id=315


이것은 확실히 그것입니다. 동일한 서블릿을 두 번 매핑했는데이 수정이 작동했습니다.
George

11

위에서 언급 한 답변 중 어느 것도 나를 위해 일하지 않았습니다. Eclipse IDE에서 Tomcat 9를 사용하고 있습니다. 따라서 Eclipse Neon에서 다음 단계를 시도했습니다.

1 단계 :Servers 탭을 클릭 하여 서버를 확인합니다. 제 경우에는 다음과 같이 보입니다.

여기에 이미지 설명 입력

단계 # 2 : 서버를 마우스 오른쪽 버튼으로 클릭하고을 선택 Properties하면 다음 창이 표시됩니다. 를 클릭 Switch Location가의 기본 one.Click에서 아래 이미지와 같이 하나의 위치를 변경합니다, Apply다음과OK 창을 닫습니다.

여기에 이미지 설명 입력

단계 # 3Overview 아래 이미지와 같이 옵션 이 열리는 Tomcat 서버를 두 번 클릭 합니다. 이 Server Locations부분은 내가했을 때 활성화되었습니다 (이미 끝에서 수행했고 서버가 실행 중이기 때문에 이미지에 비활성 상태로 표시됨). 두 번째 라디오 버튼 옵션을 선택했습니다 Use Tomcat installation (takes control of Tomcat installation). 그런 다음이 옵션을 닫고 메시지가 표시되면 변경 사항을 저장하고 서버를 시작했습니다. 잘 작동하기 시작했습니다.

여기에 이미지 설명 입력


1
고마워요, 그게 저에게 도움이 된 유일한 옵션입니다!
Mike B.

이것은 문제를 해결했습니다. 감사합니다. 실제로 작동하는 솔루션이 작은 표를 얻는다는 것은 놀라운 일입니다.
과학적 방법

7

필자의 경우 문제는 web.xml 파일에 있었는데, url 패턴 앞에 "/"(예 : /login.do)를 붙이는 것을 잊었습니다.

내 문제를 해결 한 것은 위에서 @ Ajak6에서 언급했듯이 서블릿 API를 프로젝트의 외부 JAR 라이브러리로 추가하는 것입니다.

그러나 다음과 같이 대상 런타임에 Tomcat을 추가하여 더 나은 방법을 찾았습니다.

1) 프로젝트> 속성

2) 사이드 메뉴에서 "Targeted runtimes"를 선택합니다.

3) Tomcat 선택 (적용 클릭)

4) 확인을 클릭하십시오.


제 경우에는 Annotations로 잘 작동했지만 web.xml에 서블릿 구성을 추가했을 때 /를 넣는 것을 잊었고이 문제가 발생했습니다. 다행히도 이것은 빠른 수정이었습니다. 감사합니다 Emad!
ppalancica

6

새 작업 공간을 만들면이 문제를 해결할 수도 있습니다.


32
해결되지 않는 문제에서 벗어날 수 있습니다.
Yauraw Gadav 2013 년

1
실제로는 그렇지 않습니다. 아마도 프로젝트 매핑에 포함 된 것일 수 있기 때문입니다.
George

6

web.xml 파일을 엽니 다. (어디 있는지 모르면 Google로 검색하십시오.) 다음과 같습니다.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
.
.
.
.
</web-app>

<?xml version="1.0" encoding="UTF-8"?>줄 바로 아래 에 태그를 추가하고 태그로 <element>맨 아래에 닫습니다 </element>. 끝난.


시작되고 오류가 사라졌습니다. 그러나 듣지 않습니다. 요소는 무엇입니까?
Yergalem

5

나는 내 바람둥이 서버에서 같은 문제가 있었지만 깊이 확인했을 때 내 web.xml 파일에 새 태그를 추가하고 서버가 그것을 받아들이지 않는다는 것을 발견 했으므로 파일을 확인하여 업데이트가 발생했는지 확인한 다음 바람둥이를 다시 시작하십시오. 좋을 것이다 .


1
내 web.xml에서 <servlet>과 <servlet-mapping>을 혼동하여이 오류가 발생했습니다. 감사! 귀하의 솔루션이 저에게 효과적이었습니다.
Aafreen Sheikh 2014

1
좋아, 나에게도 좋았고 물론 그들 사이에 혼란스러워지면 <servlet>이 컨테이너에 정의되어 있고 <servlet-mapping> http 요청에 대한 서블릿 및 url과 매핑하기 때문에 서버가 시작되지 않습니다.
REDA 2014

세상에, 믿을 수 없어. 나는 같은 문제가 있었다. 고마워요, 제가 당신에게 얼마나 감사하는지 말할 수 없습니다.
Rakesh Yadav

3

모든 것이 1 초 동안 잘 작동했고 내 서버가이 오류를주기 시작했습니다. 여기에 언급 된 모든 답변을 살펴 봤고 저에게 도움이 된 것은이 간단한 솔루션이었습니다.

서버 삭제 후 새 서버 구성

아무것도 변경하지 않았고 오류가 방금 팝업되었다고 확신하는 경우 .snap 파일 또는 기타 임시 파일 삭제를 시작하지 마십시오. 그렇게하면 더 많은 문제가 발생할뿐입니다. 그리고 사용자가 변경 한 일부 오류로 인해 오류가 발생한 경우이 오류는 분명히 web.xml 파일의 일부 오류 때문일 것입니다.

추신 : 작업 공간을 변경하면 전혀 효과가 없습니다. 문제가 프로젝트에있는 경우 프로젝트를 가져올 때 새 작업 공간에서 여전히 발생하기 때문입니다!


2

서버 콘솔에서 기존 tomcat 서버를 삭제하십시오. 콘솔이없는 경우 "Show view-> server"로 이동 한 다음 서버를 마우스 오른쪽 버튼으로 클릭하여 삭제할 수 있습니다. 새 서버를 추가하면 확실히 도움이 될 것입니다.


나는 모든 코멘트를 읽었다. 이것은 나를 위해 일한 유일한 옵션이다.
Vineela Thonupunuri

2

나는 똑같은 문제가 있었고 여기에 대답하지 않은 것이 내 사건에 도움이되었습니다. 그래서 몇 시간의 검색 끝에 나는 해결책을 찾았고 다른 사람에게 도움이되기를 바랍니다.

이것은 "로컬 호스트에서 서버 Tomcat v7.0 서버를 시작하지 못했습니다."를 얻는 모든 사용자를위한 솔루션입니다. Eclipse에서 Tomcat 서버를 구성하고 프로젝트를 실행하려고 한 후 오류가 발생했습니다.

eclipse에서 tomcat 서버를 구성한 후에는 tomcat에서 "WEB-INF"디렉토리를 복사해야합니다. C : \ ... % TOMCAT_HOME % \ webapps \ ROOT 및 "WEB-INF"는 이클립스 프로젝트의 WebContent 폴더에 복사하여 붙여 넣기 만하면됩니다 (web.xml 파일 덮어 쓰기).

도움이 되었기를 바랍니다.


2

제 경우에는 servlet-api.jar을 찾을 수 없다는 오류가 발생했습니다. 왜 갑자기 그것이 오류를 일으키기 시작했는지 모르겠습니다. 이전에는 아무 문제없이 실행 되었기 때문입니다. 빌드 경로 옵션에 servlet-api.jar를 제공 한 후 서버가 성공적으로 시작되었습니다.


위의 모든 것을 시도한 후에 실제로 이것은 나를 안내했습니다. IT는 일부 종속성 불가능 WAS
젊은 에밀

2

제 경우에는 tomcat 폴더 (모든 파일이 들어있는 폴더)를 다른 장소에 배포했습니다.

그런 다음 이클립스를 시작하고 jsp 및 서블릿으로 프로젝트를 실행하려고 할 때 동일한 오류가 발생했습니다.

여기에서 모든 답변을 시도했지만 여전히 아무것도 변경되지 않았습니다. 나를위한 해결책은 모든 tomcat JAR 파일을 다음과 같이 프로젝트 라이브러리에 넣는 것입니다.

  1. Eclipse로 이동
  2. 작업중인 프로젝트를 마우스 오른쪽 버튼으로 클릭> 빌드 경로> 빌드 경로 구성 ...> 라이브러리> 외부 JAR 추가
  3. Tomcat / bin 및 Tomcat / lib에서 모든 JAR 파일을 선택합니다.
  4. "확인"을 누르십시오.

이제 프로젝트의 Libraries 폴더에서 찾아야 작동합니다.


2

1- 작업 공간 디렉토리».metadata».plugins»org.eclipse.wst.server.core 폴더로 이동합니다.

2- tmp 폴더를 삭제하십시오.

3- Eclipse IDE 다시 시작


1

내 이클립스 작업 공간에서 아래 단계를 수행하여 해결되었습니다. 창-> 환경 설정-> 네트워크 연결-> '활성 공급자'를 '기본'대신 '직접'으로 변경하십시오. 시도해 볼 수 있습니다.


1

이번 주말에 비슷한 문제에 직면했습니다. 위에서 언급 한 모든 트릭을 시도했지만 그중 어느 것도 저에게 효과가 없었습니다. (Eclipse LUNA에서 작업)

그런 다음 특정 서블릿을 만들기 직전에 Apache Tomcat v7.0을 성공적으로 실행하고 있음을 분석했습니다. 아래와 같이 "RefreshServlet"은 다음과 같습니다.

RefreshServlet.java

그래서 서블릿을 연습하여 "AutoRefresh"기능을 이해합니다. 내 응용 프로그램에서이 서블릿을 제거하면 제대로 작동하지만이 서블릿을 추가하고 실행하려고하면 "Apache Tomcat v7.0을 시작하지 못했습니다."라는 오류가 표시됩니다.

이유는 모르겠지만이 서블릿을 제거하는 것만으로 나머지 응용 프로그램을 실행할 수 있습니다.

따라서 저의 결론은 다른 트릭이 작동하지 않으면이 오류가 발생하기 전에 방금 만든 최신 서블릿이나 클래스를 제거하면 나머지 응용 프로그램에서도 잘 작동 할 수 있다는 것입니다.

추가 설명을 주시면 감사하겠습니다. 감사


1
동일한 URL에서 수신 대기하는 여러 서블릿이있을 수 있으며 이로 인해 Tomcat이 시작되지 않습니다.
alttag

1

웹 디스크립터 (web.xml) 또는 서블릿 (어노테이션이있는 곳에서 '@WebServlet ( "/ servlet_name")'과 같은 것을 확인하십시오)에서 중복이 있는지 확인하십시오.있는 경우 제거하십시오.


1

서버 탭에서 tomcat 서버를 마우스 오른쪽 버튼으로 클릭하고 "Clean Tomcat Work Directory"를 클릭하여이 문제를 해결했습니다.


1
이것이 나를 도왔던 것입니다Server Tomcat v8.5 Server at localhost failed to start.
Nipun Tharuksha

0

apache-tomcat을 마우스 오른쪽 버튼으로 클릭하고 속성을 선택한 다음 기본값 복원을 클릭하십시오.


0

제 경우에는 전달되는 인수의 구문 오류로 인해 문제가 발생했습니다. '-D'를 사용할 때 키와 값 사이에 공백이있었습니다.

-DMyArg= MyValue

대신에

-DMyArg=MyValue

0

이클립스 서버 탭에서 아파치 서버를 두 번 클릭하십시오. 이제 tomacat 관리 포트를 8010으로, http 포트를 8082로, Ajp 포트를 8011로 변경하십시오.


0

주어진 모든 대답이 작동하지 않으면 현재 작업 공간을 변경하십시오.

파일-> 작업 공간 전환

그것은 당신의 문제를 해결할 것입니다.


마지막으로 좋은 옵션입니다. 그러나 작업 공간 변경에는 약간의 골칫거리가 있습니다.
Sagar007

0

제 경우에는 Tomcat의 다른 인스턴스가 실행중인 문제였습니다. 서비스에서 중지하고 문제가 해결되었습니다.


0

위에서 언급 한 모든 단계를 시도한 후에도 문제가 해결되지 않았습니다.

마지막으로 아래 단계로 해결되었습니다.

1- 작업 공간 디렉토리 내의 .log 파일을 확인하십시오. Java 버전 문제

"원인 : java.io.IOException :"C : \ jdk1.7.0_45 \ bin \ java "프로그램을 실행할 수 없음 : CreateProcess 오류 = 193, % 1은 (는) java.lang.ProcessBuilder.start (Unknown)에서 유효한 Win32 응용 프로그램이 아닙니다. Source) at java.lang.Runtime.exec (Unknown Source) at java.lang.Runtime.exec (Unknown Source) at org.eclipse.debug.core.DebugPlugin.exec (DebugPlugin.java:869) ... 80 more

원인 : java.io.IOException : CreateProcess error = 193, % 1은 java.lang.ProcessImpl.create (Native Method)의 java.lang.ProcessImpl. (Unknown Source) at java.lang. ProcessImpl.start (알 수없는 소스) "

올바른 OS 호환 JDK를 설치했고 문제가 해결되었습니다. 추신 : Eclipse (Window-> preference-> installed JRE)를 통해 JDK 경로를 명시 적으로 설정했지만 올바른 JDK 경로를 설정 한 후에는 잘 작동합니다.


0

먼저 Web.xml에서 이름 다른 여러 개의 <servlet mapping> 태그가 있는지 확인 하십시오. 그렇다면 원하지 않는 태그를 삭제하고 실행하십시오.

또는

이 문제를 해결하려면 디렉토리에있는 .snap 파일을 삭제해야합니다.

사용중인 Eclipse 작업 공간으로 이동-> workspace.metadata.plugins \ org.eclipse.core.resources \ snapfile

스냅 파일을 삭제하십시오.

이 파일을 삭제 한 후 Tomcat 서버를 삭제합니다. 를 삭제 한 다음 Apache tomcat으로 선택된 서버 런타임도 삭제합니다. 그런 다음 서버를 다시 추가하고 프로젝트-> 속성-> 프로젝트 패싯-> 오른쪽에 세부 정보 및 런타임 탭을 찾을 수 있습니다. Runtimes를 클릭하고 이미있는 Apache 상자를 선택합니다 (존재하지 않는 경우 추가).

포트 번호를 변경하고 실행하십시오.


0

Maven 로컬 저장소 (.m2)에서 프로젝트의 모든 종속성을 제거해보십시오.

경로 : C : \ Users \ user_name \ .m2 \ repository

이클립스를 닫고 다시 열면 모든 종속성이 자동으로 다운로드됩니다.


0

이클립스에서 다른 모든 프로젝트를 간단히 종료하여 문제를 해결했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.