코딩초보1
324
2019-09-17 00:24:35
11
211

톰캣 루트 폴더 변경 도와주세요ㅠㅠ


학교 서버에 업로드 시키려는데

현재 war파일로 가지고있습니다.

지금 루트가 webapps인데 이 폴더에다가 war파일을 두면 자동 압축도 풀리고 잘실행되는데

문제는 webapps/ROOT/localuser 이 폴더안에다가 넣어야합니다 ㅠㅠ

임의로 넣어봤지만 역시나 압축도 풀리지않고 임의로 풀어도 서블릿 작동이안되더군요..

혹시 war 파일이 루트폴더에서만 작동을 하는건가요??

server.xml에 루트 폴더를 변경하면 가능한건봤는데 교수가 꼭 8080/localuser/자신의 파일폴더

이렇게 실행하라해가지고.. 

저렇게하면 실행은 되는데 서블릿작동이안됩니다... 도와주세요 ㅠㅠ

0
0
  • 답변 11

  • 죠낸또이또이
    417
    2019-09-17 00:28:03 작성 2019-09-17 08:49:56 수정됨

    8080/localuser/자신의 파일폴더 이런 경로로 실행하는 문제 때문에

    ROOT/localuser 안에 넣는거라면 tomcat 의 server.xml 을 이용하여 path 를 변경하는 방법이 있습니다.

    =============================================================================

    다시 읽어보니 방법을 아시는 것 같은데, 위 방법으로 해서 URL을 8080/localuser/자신의 파일폴더로 하면 안되는건가요?

    =============================================================================

    appBase 변경 방법은 아래를 참고하세요.

    https://yongblog.tistory.com/entry/appbase%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-tomcat-%EC%84%A4%EC%A0%95

    0
  • 코딩초보1
    324
    2019-09-17 01:08:31

    음 정리해서 말씀드리면

    일단 문제는 주소창에 8080/localuser/제폴더명 이렇게 써서 되야합니다.

    그래서 path를 localuser로 해놨더니 실행은 잘됩니다! 하지만 root가 localuser로 잡혀서

    실제 주소창에는 8080/제폴더명 이렇게 되더라구요.

    그래서 다시 root를 ROOT폴더로 잡았습니다. webapps/ROOT/localuser 이렇게 폴더가 되어있습니다.

    그럼 ROOT폴더가 ROOT로 되어서 실제주소창에는 8080/localuser/제 폴더명 이렇게 되겠죵??

    근데 이렇게 해보니까 실행은 되는데 controller가 실행이 안되더군요. 예를 들어 로그인이라던지 회원가입이라던지.. 오류창 보면 500에 java server에 접속이 안된단 식으로 나오고

    결론은 server.wml에서 localuser로 root설정-> 주소창에는 8080/제폴더명 써야함.(localuser가 빠짐)

    server.xml에서 localuser 상위 폴더인 ROOT폴더로 설정-> 주소창에는 8080/localuser/제폴더명 가능

    그러나 컨트롤러 작동안됨 이거입니다. ㅜㅜ

    0
  • 코딩초보1
    324
    2019-09-17 01:10:22

    아 혹시 webapps->ROOT 이폴더가 그냥있는게 아니라 어떤 역할을 있는 폴더인가요??

    0
  • 코딩초보1
    324
    2019-09-17 01:17:24

    아 그리고 마지막으로 server.xml에서 루트를 변경하면

    예를 들어 webapps라고 치면 

    주소창에 아아피:8080치면 톰캣이 나오는데 변경을 하면 그 변경한 루트까지 써줘야 톰캣이 뜨더군요..

    혹시 루트는 변경했는데 아아피:8080만쳐도 톰캣이 뜨게도 가능한가요??

    많은 질문정말 죄송합니다 ㅠㅠ

    0
  • 정원
    99
    2019-09-17 02:10:52

    war파일 이름을 localuser.war로 바꿔서

    webapps폴더 안에 넣고 자동으로 풀리게 해보세요!

    0
  • 코딩초보1
    324
    2019-09-17 02:40:36

    그것도 생각해 봤지만 그 폴더는 이미 생성되어있고 다른 학생들도 이미 그 폴더안에 파일을 넣어놨습니다.

    그 학생들은 이클립스를 사용하지않고 서블릿도 사용하지않았기 때문에 별 무리없이 구동되었습니다. ㅠㅠ

    0
  • 죠낸또이또이
    417
    2019-09-17 08:50:14

    위에 appBase 변경해보셨나요?

    0
  • 0
  • 코딩초보1
    324
    2019-09-18 00:28:31

    정말 댓글들 감사합니다!

    다 참고하여 해봤지만 역시 안되더군요.

    조건들이 있습니다.

    첫번째 현재 appBase는 webapps이다.

    두번째 필자는 webapps/ROOT/localuser라는 폴더에 파일을 넣어 정상 작동 시켜야한다.

    세번째 이미 localuser폴더엔 다른 사람들 jsp파일들이 있다.

    네번째 주소창에 서버아이피:8080/localuser/내 파일명을 쳐서 서버가 나오게 해야한다.


    외적인 질문이지만 혹시 webapps 폴더 안에있는 ROOT가 무슨뜻인지알 수 있을까요?

    appBase에 이 ROOT를 써도 될까요??

    0
  • 옥히독히요
    572
    2019-09-18 10:33:53 작성 2019-09-18 10:35:13 수정됨

    갈피를 못잡으시는 것 같은데, tomcat이 기본적으로 설치되면 웹루트는


    ${catalina-home}/webapps/ROOT로 설정되어 있습니다.


    Context path는 설정되어 있지만, 생략되어있을 뿐입니다.  <Context> 태그를 사용하지 않으면 ROOT


    를 자동으로 Document Root로 사용하는 것입니다. (appBase에 ROOT를 쓰신다는 질문에 해답은


    이 부분입니다)


    따라서, http://localhost:8080을 접속하면 /webapps/ROOT 경로의 index.jsp가 실행되는 것입니다.


    질문자님이 의도하신대로 하시려면 appBase는 webapps 그대로 하신다는 가정 하에 server.xml을 수정하면 아래와 같습니다.


    Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true">
          <Context path="/localuser" docBase="/home/tomcat/webapps/ROOT/localuser" reloadable="true"/>


    여기서 말하는 Context path는 http://localhost:8080/(이 자리를 말합니다)


    위와 같이 설정해주면 localuser안에 있는 문서들을 다 불러오실 수 있습니다. 구글에 검색해보면 tomcat server.xml 설정하는 방법이 많은데


    그 중에서 태그를 공부해보시면 감이 오실겁니다.


    0
  • 코딩초보1
    324
    2019-09-22 20:35:46

    자세한 설명감사합니다!!!

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