.gitigore을 분명히 적용했는데 왜 적용이 되지않을까?

.gitigore을 분명히 적용했는데 왜 적용이 되지않을까?

증상

.gitignore 을 적용했는데 파일이 걸러지지않고 그대로 올라간다!

원인

파일이 적용되기 전에 리모트에 캐쉬파일이 남아있을 경우 무시되지않고 그대로 올라가버린다.

해결

  • 파일이 적용되기 전에 리모트에 남아있는 캐쉬파일을 지워주자.

    $ git rm -r --cached .
    $ git add .
    $ git commit -m "fixed untracked files"
    

서블릿 초기화 파라미터(ServletConfig 와 ServletContext)

서블릿의 초기화 파라미터인 ServletConfig와 ServletContext가 무엇인지 알아보았다.

자주 변하는 데이터를 서블릿에 넣어야 한다고 생각해보자. 서블릿 하나하나에 하드코딩을 하게 될 것이다. 이것은 유지보수를 생각하면 옳지 않은 방법이다.
그리하여 선대(?) 개발자들은 DD(배포 서술자)에 변화하기 쉬운 데이터를 설정해주고 서블릿에서는 그것을 파라미터로 받게 만들었다. 이제 데이터가 변경될 때는 DD만 수정하면 되는 것이다! 이 방법에 대하여 공부해보자.


org.springframework.beans.factory.CannotLoadBeanClassException

*org.springframework.beans.factory.CannotLoadBeanClassException 경고문이 나올 때 해결방법

원인

해당 Bean 클래스를 찾을 수 없을 때 발생하는 예외

해결

해결 방법에는 4가지가 있다.
경로를 올바르게 선택해주거나 꼬여있던 project를 다시 풀어주거나.

  • 해당 xml에 class 경로가 정확하게 기재되어 있는지 확인
    • (경로명 오타로 Bean을 못 찾는 경우일 수도 있음)
  • 이클립스의 Window - Project - Clean 으로 해당 프로젝트를 Clean
  • 해당 프로젝트 오른쪽 클릭 Properties - Java Build Path - Libraries 에서 JRE 경로를 올바르게 지정해준다. (Workspace default JRE로 설정)
  • Project - Build Automatically 선택하여 자동 빌드

javax_naming_NameNotFoundException_Name is not bound in this Context_ Unable to find

javax_naming_NameNotFoundException_Name is not bound in this Context_ Unable to find 경고문이 나올 때 해결방법

증상

DAOJDCP를 연동하려고 할 때 javax_naming_NameNotFoundException_Name is not bound in this Context_ Unable to find 이라는 경고문이 뜨며 에러가 났다.

원인

이름이 맞지 않아 찾을 수 없다는 뜻.
TomcatContext.xml에는Oracle로 등록을 했는데
DAOcontext객체에는 Oracl로 오타가 났었었다.

해결

이름을 제대로 적어주면 해결된다.

  • Contect.xml 파일의 Resource에 저장했던 name을 그대로 DAOContext객체에 똑같이 넣어준다.

[java.io.FileNotFoundException] Could not open ServletContext [/WEB-INF/action-servlet.xml]

[java.io.FileNotFoundException] Could not open ServletContext resource경고문이 나올 때 해결방법

증상

Spring SimpleUrlController 이용해서 jsp 요청하다가 증상이 나타남.
HTTP Status 500 - Internal Server Error 에러를 뿜으면서 에러가 났다.

원인

컨테이너에서 action-servlet.xml 을 찾지 못해서 에러가 났다.

해결

web.xml에서 경로를 지정해주면 된다.

<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.springframework.web.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/action-servlet.xml</param-value>
    </init-param>
</servlet>

The server time zone value is unrecongnized or represents more than one time zone

The server time zone value 경고문이 나올 때 해결방법

###Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (The server time zone value ‘’ is unreconized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specific time zone valu if you want to utilize time zone support.)] with root cause

Server Tomcat v8.5 Server at localhost failed to start

Server Tomcat v8.5 Server at localhost failed to start 경고문이 나올 때 해결방법

증상

톰캣 서버를 시작하려는데 Server Tomcat v8.5 Server at localhost failed to start 라는 경고문과 함께 서버 시작이 되지않았다.

원인

톰캣 서버에 문제가 생겨 발생하는 에러로 서버에 문제가 생기는 원인은 여러가지일 것이다.

해결

해결 방법에는 두가지가 있다.

톰캣 서버 다시 추가

  • Window - Preference - Server - RuntimeEnviroment에 들어가서 기존에 있던 Tomcat 을 제거하고 다시 추가
  • 프로젝트 Build Path - Server 에서 톰캣추가

    각기 다른 XML 파일로 publish

  • Perspective - Server 에 들어가서 현재 있는 톰캣서버 더블클릭
  • Server Option에서 Publish module contexts to seperate XML files 선택

ORA-022910: integrity constraint (*) viloated - parent key not found**

Oralce 부모키를 찾을 수 없는 에러

증상

테이블에 insert하려는데 해당 에러가 나타났다.

원인

자식테이블에서 부모테이블을 참조해서 insert 하고 있는데 별안간 부모키가 없어졌을 때 이 에러가 나타난다.

해결

  • 부모테이블에 있는 키를 이용해 자식테이블에 insert한다.
  • insert 하려고 했던 정보를 미리 부모테이블에 insert 하여 존재하게한다.

서블릿 스코프(Servlet scope)

Servlet의 scope에 대하여 공부해보았다.

서블릿에서 변수를 지정하고 객체에 담아 포워드 하려면
객체가 어디까지 유지되는지를 반드시 알아야 마음대로 변수를 가지고 놀 수 있을 것 이다…
서블릿 객체의 각 범위들을 공부해보자!

Pagination