본문 바로가기

Java/Spring

Spring4 웹 어플리케이션 생성하기 책을 보면서 작업하는데, 내용이 약간 달라서 수정하였다.윈도우에서 2가지 방법으로 생성해 보겠다.환경은 다음과 같다.jdk1.8.0_45Spring Tool Suite Version: 3.9.2.RELEASESTS를 설치하고 툴바에서 Dashboard를 클릭하거나 메뉴에서 [Help>Dashboard]를 클릭하면 다음 화면이 나온다. 여기서 오른쪽 하단에 보면 Manage 안에 IDE EXTENSIONS 버튼을 누르면 다음과 같은 새창이 뜬다. 이미 설치하여 보이지는 않는데 다음 두개의 라이브러리를 설치하자.Groovy Compiler 2.4Groovy-Eclipse FeatureGradle IDE참고 문서에는 이름이 다르게 나와있으나 비슷한 것으로 설치해서 진행한다. 원본의 라이브러리는 다음과 같다.G.. 더보기
logback library Exception 출력 간만에 로그 설정을 하면서 logback이 좋다고 해서 사용해보려고한다.일단 대표적인 장점으론 속도가 log4j보다 10배정도 빠르다고 한다. 설정 중 문제가 생겼다. 설정한데로 로그는 잘 나오는데, 라이브러리에 있는 항상 보던 로그들이 하나도 찍히지 않는다. 해결방법은 configuration 태그에 debug를 true로 설정하면 된다. logger로 설정하면 된다고 되어 있는데, debug 속성값이 디폴트가 false로 확인할 때는 library Exception이 출력되지 않았다. debug 속성값을 true하는게 좋을 듯하다. 로그가 없으니 오류나도 확인할 방법이 없다. 하나하나 전부 로깅해보기에는 작업량이 많을 경우 비효율적이다. 참고 페이지https://stackoverflow.com/que.. 더보기
에러 콘트롤러를 만들어 로그를 찍어보자 web.xml에 다음 코드를 추가하면 간단히 에러 페이지로 이동할 수 있다. 404 /error/error.html 500 /error/error.html 그런데 나는 error.html을 컨트롤러로 구현하여 로그를 찍어보고 싶었다. 에러코드, URI, 에러 메시지등.가능해보여서 찾다가보니 쉽게 나오지 않는다. 일반적인 방식이 아닌모양이다. 순수 자바로 구현한 예제를 찾았다.그렇게 해서 구현한 것이 다음과 같다.Throwable throwable = (Throwable)req.getAttribute("javax.servlet.error.exception");Integer statusCode = (Integer)req.getAttribute("javax.servlet.error.status_code");S.. 더보기
Spring + Maven 프로젝트 만들기 간만에 새 프로젝트를 만들려고 하니 잘 생각이 안나는 것이.. 하는 김에 플로깅해본다. STS + MAVEN은 전에 남겼으니 이 두가지가 설치됬다는 가정하에 진행하겠다. 메뉴 [File] -> [New]에 보면 Spring Project가 있다. 선택하자. 보통은 바로 보이지만 안보일 경우에 [Other]를 선택하고 상단에 spring이라고 치면 관련 목차가 나온다. Next를 누르면 아래와 같은 화면이 나오는데 Spring MVC Project를 선택하면된다. 이제 페키지를 입력해야하는데 적어도 3단계는 넣어줘야 완료할 수 있다. 여기까지 하면 기본적인 HomeController가 생성된다. 더보기
dwr 오류 tomcat에서 아래의 오류로그가 나오고 있다. 허나.... 로컬에서는 에러가 없다. 삽질을 엄청나게 하며 찾고 있다.2012-08-01 12:03:26,706 ERROR [org.springframework.web.context.ContextLoader] - org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 11 in XML document from ServletContext resource [/WEB-INF/ajax-layer.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wi.. 더보기
스프링 버젼 확인하기 스프링 버젼을 확인할 필요가 있어서 찾아보았다.System.out.println( org.springframework.core.SpringVersion.getVersion() ); 더보기
form으로 파일 전송 파일을 전송하기 위해선 다들 아시겠지만 form을 사용하면 된다. 화면//--- submit(); --- //다들 사용하는 방법이라 딱히 설명할게 없다. submit은 자바스크립트로 어디서든 가능하니 뺐다. 본인은 다른 곳에서 submit한다. 자바에서 처리하는 방법은 여러가지 있다. 방법 1.MultipartFile mf = (MultipartFile) ((MultipartHttpServletRequest) req).getFileMap().get("xml_file");InputStream is = mf.getInputStream();이건 문제가 좀 있다. xml_file에 데이터가 없으면 오류가 발생한다. 예외처리를 하면 되지만 왠지 부족해보인다. 하지만 가장 간단하다. 사용자가 딴짓을 할게 이유가 없.. 더보기
spring + freemarker 테스트를 위해 로컬에 환경을 구현해보았다. freemarker 라이브러리 다운 페이지http://freemarker.sourceforge.net/freemarkerdownload.html 1. web.xmlSample_Spring3.0 /html/test.html springorg.springframework.web.servlet.DispatcherServlet1spring*.free encodingFilterorg.springframework.web.filter.CharacterEncodingFilterencodingUTF-8 encodingFilter * 오랜만에 하니 헷갈리는 부분이 있었다. servlet에서 url-pattern을 *로 설정하는 실수를 했더니 모든게 서블릿으로 동작하고 view와 .. 더보기
Spring 3.0 프로그래밍 챕터3 03 메시지 및 이벤트 처리 03-01 MessageSource를 이용한 국제화 처리 웹 어플리케이션은 화면에 다양한 텍스트 메시지를 출력한다. 게시글 목록을 보여 줄때 각 칼럼에 '제목', '번호'와 같은 메시지를 사용하고,특정 기능을 성공적으로 수행한경우에도 그 결과를 메시지로 출력해서 알려 주게된다.만약 개발해야 할 어플리케이션이 다국어를 지원해야 한다면, 각 언어에 맞는 메시지가 화면에 출력되어야 할 것이다. 메시지의 국제화를 지원하기 위해 org.springframework.context.MessageSource 인터페이스를 제공하고 있다.아래는 인터페이스 정의한 코드이다. public interface MessageSource{ String getMessage(String code, Objec.. 더보기
Spring 3.0 프로그래밍 챕터2 02-01. 스프링 컨테이너 스프링은 객체를 관리하는 컨테이너를 제공한다. 컨테이너에 객체를 담아두고, 필요할 때에 컨테이너로부터 객체를 가져와 사용할 수 있도록 하고 있다. BeanFactory와 ApplicationContext가 컨테이너 역할을 수행하는 인터페이스가 된다. 2.1 스프링 컨테이너의 주요 인터페이스 1.1 BeanFactory 인터페이스 org.springframework.beans.factory.BeanFactory 인터페이스는 Bean 객체를 관리하고 각 Bean 객체간의 의존 관계를 설정해 주는 기능을 제공하는 가장 단순한 컨테이너로서, 구현 클래스로 org.springframework.beans.factory.xml.XmlBeanFactory 클래스가 존재한다. XmlBeanF.. 더보기