spicy
40
2018-05-10 13:13:52
4
1871

톰캣, 이클립스, 메이븐 프로젝트의 버전이나 설정에 대해 질문드립니다


취직도 경력도 얼마되지 않은 초보신입 입니다 

회사 소스코드를 받았는데 숙제가 풀리질 않습니다 ㅠㅠ

로컬톰캣서버에서 실행하고 링크을 눌렀을 때 500에러가 뜨지 않도록 하라는 숙제를 받았는데

아무리 머리를 쥐어짜봐도 되지를 않습니다 ㅠㅠ

run on server를 하면 페이지는 정상적으로 뜨지만 링크를 눌렀을 때 500에러가 뜹니다.

소스코드는 건들 것이 없다고 하시면서 톰캣 버전이나 설정의 문제라고 하셨습니다.

톰캣의 which version?보고 버전을 잘 맞췄다고 보는데도 안됩니다..


에러코드는

org.springframework.beans.factory.BeanCreationException: Error creating bean with name '클래스명1': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: 클래스명2(클래스1에서 변수로 사용될 클래스2) 클래스명1.클래스명2(클래스1에서 사용되는 변수); nested exception is... 

클래스에 필요한 변수 빈을 찾지 못한다는 에러가 계속 이어져 있다가 마지막에는

Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: Could not initialize class 라이브러리에 있는 클래스명

으로 끝이 납니다.


처음에 저는 라이브러리에 있는 클래스 자체에 문제가 있어서 빈으로 만들지 못한다고 생각했으나 선임분께선 톰캣 버전이나 설정 문제라고 했습니다. 그래서 생각을 해봤는데요


1. 라이브러리에 있는 클래스 자체에 문제가 있다 > 아니라고 하셨어요

2. 톰캣이 임시로 만들어 돌리는 org.eclipse.wst.server.core 폴더에 만드는 tmp폴더에 문제가 있다

3. 임시파일을 만들고 실행하는 과정, 즉 톰캣에서 설정할 수 있는 부분을 수정해야 한다


로 추측했습니다.

그래서 지금은 톰캣의 server.xml파일의 설정법에 대해 찾아보고 있고

혹시 pom.xml에서 버전이 잘못되었는지 살펴보고 있는데 잘 모르겠습니다..


기본 프로젝트와 기본 톰캣으로는 돌아가는데

수정한 프로젝트와 기본 톰캣으로 돌아가지 않는다면

프로젝트의 pom.xml이라든지 web.xml 또는 톰캣의 server.xml이나 다른 파일 설정을 수정해줘야 할 것 같은데 어디를 어떻게 만져야 할지 감이 안옵니다 ㅠ

wtpwebapps에 있는 WEB-INF에서 다른 프로젝트는 view인데 여기넌 jsp폴더이던데 그런게 문제가 되나요?


버전은 아래와 같습니다. 혹시 제가 안 적거나 필요한 정보 있으면 말씀해주세요 ㅠ


이클립스 버전         4.7 Oxygen

컴퓨터 자바 jdk 버전 10.0.1

프로젝트 라이브러리 버전 javaSE -1.6

pom.xml 자바버전         1.6

컴파일         1.6

Dynamic Web Module 버전 2.5

톰캣 버전                 6.0.39

톰캣 웹앱 버전 2.5

0
  • 답변 4

  • jayo
    427
    2018-05-10 13:44:18

    상냥한 회사네요. 500에러만 안뜨게 하는거면 후딱하고 쉬라는건데 ..

    클래스명 나오는 파일있죠? 그 파일이나 받은 파일중에 링크 갈때 사용하는 파일에.

    어노테이션이나 빠진게 있는지 확인해보세요.

  • iIIiIiiIiIIIiiIiIiII
    40
    2018-05-10 14:18:58

    bean 생성해주는 xml 파일도 살펴보세요..

    거기에 등록 안해놓고 그냥 autowired 써서 그럴수도 있습니다

  • spicy
    40
    2018-05-10 14:37:05 작성 2018-05-10 14:52:40 수정됨

    톰캣이나 버전문제는 아닐거라고 보시는건가요?

    그냥 bean생성이 안됐기 때문인가보군요. 확인해보겠습니다

  • spicy
    40
    2018-05-11 16:22:31

    확인해본 결과 

    Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: Could not initialize class 라이브러리에 있는 클래스명

    여기 들어간 클래스가 native메서드를 갖고 있던 클래스였고

    native메서드를 불러올 dll파일의 위치가 path로 등록되지 않았기 때문이었습니다.

    path에 dll파일 경로 등록하고 이클립스 껐다 켜니까 제대로 작동했습니다.

    결국 톰캣이나 이클립스, 자바의 설정문제는 아니었던 거였네요.

  • 로그인을 하시면 답변을 등록할 수 있습니다.