MA3STR0
135
2019-09-26 15:24:40
8
189

Spring(egov) BuildPath 못잡는 문제...


안녕하세요! 몇개월째 막히는 부분이 있어 선배님들의 조언을 구하고 싶습니다.. ㅠ

프로젝트 세팅은 아래와 같습니다.

 

DeploymentAssembly

source              Deploy path

/src/main/java         WEB-INF/classes

/src/main/resources  WEB-INF/classes

/src/main/webapps  /

 

build path

<프로젝트명>/src/main/java

<프로젝트명>/src/main/resources

<프로젝트명>/src/main/webapp

Default outputFolder : <프로젝트명>/target/classes


Context root : ROOT

 

일때, 소스코드 밑의 target 폴더 내부는

target

- classes

   - css, library, img, script, META-INF, egovframework(context 등의 리소스 파일 + 컨트롤러,서비스 class 파일)

   - WEB-INF(webapps 파일, html, root-context ... )

 

해당 target 폴더로 빌드되어 tomcat 로컬서버에 배포 시

rg.eclipse.wst.server.core\tmp0\wtpwebapps 아래에

<프로젝트이름 폴더>

- css, library, img, script , META-INF, egovframework(context 등의 리소스 파일 + 컨트롤러, 서비스 class 파일)

- WEB-INF(webapps파일, html, root-context ... )

   - classes

     - egovframework(context, sqlmapper 등의 리소스파일"만" 있음, 여기에 ../../../ 의 egovframework 아래 <패키지명>(class 파일들 있는 폴더) 을 복사붙여넣기하면 정상적으로 구동되나, 컨트롤러 수정사항이 반영되지 않음.

 

이런 상태로 이클립스에서 톰캣 실행 시 아래와같은 Exception 이 발생합니다.

 

심각: Error configuring application listener of class [egovframework.제품명.login.web.LoginSessionListener]

java.lang.ClassNotFoundException: egovframework.제품명.login.web.LoginSessionListener

           at org.apache.catalina.loader.WebappClassLoaderBa.....

 

이외로, org.eclipse.wst.common.component 는 아래처럼 되어있습니다

 

<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">

    <wb-module deploy-name="프로젝트명">

        <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>

        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>

        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>

        <property name="java-output-path" value="프로젝트명/WEB-INF/classes/"/>

        <property name="context-root" value="ROOT"/>

    </wb-module>

</project-modules>

 

jdk 1.8 / tomcat 8.5 / eclipse 2018-12 사용중이며, 전자정부프레임워크 3.1 사용중입니다.

필요하실경우 tomcat work directory 및 프로젝트 target 폴더 전체를 캡쳐해 드릴수도 있습니다.


회사에 사수가 없다보니... 어디다 물어볼곳도 마땅찮고 검색해도 이렇다할 솔루션이 없네요..ㅠㅠ

답변 부탁 드립니다!

0
0
  • 답변 8

  • 바히
    601
    2019-09-26 16:24:36

    톰캣서버 clean해보시고 다시 publish 후 기동 해보시겠어요.

    0
  • MA3STR0
    135
    2019-09-26 16:31:31

    설정 변경하면서 계속 project clean -> server clean -> publish 하는 중입니다...ㅠ


    0
  • 바히
    601
    2019-09-26 16:33:14

    프로젝트 메이븐사용하시면 메이븐 빌드시 이상 없으시나요?

    0
  • MA3STR0
    135
    2019-09-26 16:41:24

    메이븐 프로젝트이긴 한데... 라이브러리를 webapps > lib 안에 jar 파일을 직접 import 해서 쓰는 중입니다...

    누군가 처음엔 메이븐을 썼던거같은데 중간에 왜 이렇게 쓰고 있었는지는 잘 모르겠네요 ㅡㅠ...

    빌드하고 배포할때는 그냥 war 파일로 배포를 하구요...

    0
  • 반역이론
    62
    2019-09-26 16:52:05

    기묘한 오류네요.. 

    오류내용만 보면 ClassNotFoundException 인데  egovframework.제품명.login.web.LoginSessionListener 이 클래스의 유무는 당연히 체크해보셨을거 같고..

    디플로이가 일시적으로 안됬던 문제라면 클린-클린 하는동안 디플로이가 최소한 한번은 됬을테니 해결됬을거고..

    그렇다면...

     egovframework.제품명.login.web.LoginSessionListener 이 클래스를 사용하는 곳을 찾아서 혹시 오타가 아닌지도 확인을 한번 해봐야될거 같네요..

    물론 그런 수준이라면 구동이 안될정도의 오류는 아닐건데.. 제 짧은 머리로는 이정도밖에 생각이 안나네요..

    더 고차원적인 문제일수도 있으니 전자정부 공식홈피쪽에도 한번 문의해보시는게 좋을거같네요..

    0
  • 바히
    601
    2019-09-26 16:54:30

    이클립스에서 problems 쪽 로그 확인해보셔야 할것 같네요.

    0
  • MA3STR0
    135
    2019-09-26 16:54:52

    답변 감사드립니다.. 전자정부 공식홈페이지에서는 이클립스 버전을 낮춰라...고밖에 답이 안왔습니다 ㅠㅠ

    이상한것이 wtpwebapps 에 egovframework.제품명 디렉토리(class 파일이 들어있는)를 그대로 상위폴더내 WEB-INF/classes 디렉토리 안으로 복사붙여넣기하면 구동이 된다는겁니다..ㅠㅠ

    tomcat 에서 deploy 되는 부분이나.. 혹 전자정부/Spring 의 class 파일을 찾는 부분에 있어서 경로 문제이지 않을까 싶은데.. 소스를 전부 뒤져봐도 그런걸 찾지를 못하겠네요... 

    0
  • MA3STR0
    135
    2019-09-26 16:55:19

    이클립스 problems 쪽에는 error 가 하나도 없습니다..

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