기본 콘텐츠로 건너뛰기

8월, 2013의 게시물 표시

[linux] : bad interpreter: 그런 파일이나 디렉토리가 없음

* 발생이유 현재 서버의 환경과 실행할 쉘 스크립트 파일이 호환이 되지 않아 발생 해당 스크립트 파일을 vi의 바이너리 모드로 열어보면 vi -b test.sh ^M <- 이문자가 행 끝마다 붙어있는게 보인다. 그래서 저문자를 지워야 해결이 되는데, 보이는데로 꺽쇠 + 대문자 M 을 적으면 해결이 되지 않는다. 대신 Ctrl + v + m 으로 입력을 해야 한다. 일일이 찾아서 지울수는 없으니 아래처럼 치환 명령을 통해 ^M을 삭제하면 해결. :%s/^M$//g

[web.xml] The content of element type "web-app" must match "(icon?,display-name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-mapping*,session-config?,mime-mapping*,welcome-file-list?,error-page*,taglib*,resource-env-ref*,resource-ref*,security-constraint*,login-config?,security-role*,env-entry*,ejb-ref*,ejb-local-ref*)".

web-xml에서 다음과 같은 에러메세지가 떨어지는 경우 The content of element type "web-app" must match "(icon?,display-name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-mapping*,session-config?,mime-mapping*,welcome-file-list?,error-page*,taglib*,resource-env-ref*,resource-ref*,security-constraint*,login-config?,security-role*,env-entry*,ejb-ref*,ejb-local-ref*)". 원인은 web-app의 자식 element들은 나름 순서대로 적어줘야 하는데 이 순서를 지키지 않아서 발생 순서는 에러메세지 순서와 같다. 1. icon 2. display-name 3. description 4. distributable 5. context-param 6. filter 7. filter-mapping 8. listener 9. servlet 10. servlet-mapping 11. session-config 12. mime-mapping 13. welcome-file-list 14. error-page 15. taglib 16. resource-env-ref 17. resource-ref 18. security-constraint 19. login-config 20. security-role 21. env-entry 22. ejb-ref 23. ejb-local-ref