Spring framework 기반으로 Mybatis 설정 완료 후 프로시져를 통해서 리스트 값을 받아올 때 종종 Cursor is closed라는 에러가 발생하는 것을 확인할 수 있습니다. exception으로 throw하기 때문에 난감한 상황이 됩니다. 그렇다고 DB툴을 켜서 프로시져를 실행해보면 정상적으로 응답이 나오는 것을 확인할 수 있습니다. Mybatis에서는 해당 상황이 발생할 때SqlException으로 던지기 때문인 듯 한데, 이를 해결해 주려면 Cursor를 프로시져 도입부에서 무조건 Select 해주면 됩니다. 다만, 값을 내려주면 안되는 상황이고 Select를 태울 필요가 없는데 처음부터 Select가 실행되면 문제가 되기도 하니 아래와 같이 해결하시면 됩니다. 1 2 3 4 5 6..
일반적으로 Spring은 Spring 영역을 벗어나면 Component scan 범위를 벗어나므로 의존 주입을 할 수 없습니다. 본 바탕이 Spring인데 외부 API에 DB를 이용해서 데이터를 적재해야 하는데 dao(data access object)를 Autowired 할 수 없으니 따로 Util을 생성하여 거기에 DB를 적재하고자 생각했습니다. 다만, 이렇게 적용해보니 문제가 Util로 가게 되면 생성되는 Method들이 모두 static으로 선언되어 생성되는데 static 영역에는 Autowired를 사용할 수 없었습니다. 그래도 꼼수로 static 필드에 넣을 수 있는 방법이 있지 않을까 싶어서 검색해보니 역시 위대한 구글신께서 방법을 알려주셨습니다. 방법은 아래와 같습니다. 1234567891..
월급쟁이인 관계로 설렁설렁 일을 하고 있던 와중에 스트럿츠2를 프레임워크로 사용하고 있는 시스템에서 scheduler를 생성할 일이 생겼습니다. Spring 프레임워크 기반이 아니라서 Spring에서 처럼 간단하게 어노테이션으로 처리할 수 없어서 열심히 구글에서 검색을 해봤습니다. 검색을 해보니 Quartz2라는 라이브러리를 통해서 만들라고 하더군요. 그래서 Quartz2를 기반으로 한 scheduler를 만들어 냈습니다. 생각보다 간단했습니다. 일단 Struts2는 기본적으로 있으실거라고 생각하고 Quartz2 라이브러리부터 받아보도록 하겠습니다. 1 2 3 4 5 6 org.quartz-scheduler quartz 2.1.5 cs Maven으로 라이브러리를 관리하고 있으시다면 pom.xml 에 다음..
중국 내에서 Struts 2.3.3 이하 버전에서 원격을 통해서 접근하여 시스템 계정 등을 조작하는 프로그램 확산 여파로 인해 유지보수를 담당하고 있는 시스템의 Struts 버전을 업그레이드 해야할 필요가 생겼습니다. 무턱대고 전 라이브러리를 바꿔서 실행시켜 줬더니 역시나 돌아가질 않습니다. 아무래도 코어 등의 파일만 바꾼 후 점진적으로 바꿔줘야 하는 것 같습니다. Struts는 아래 링크에서 다운로드 가능합니다. struts.apache.org 업그레이드에 필요한 라이브러리 파일 목록은 다음과 같습니다. - commons-lang3-......jar - xwork-core-2......jar - struts2-core-2......jar - ognl-3.......jar - javassist-3......
- Total
- Today
- Yesterday