JVM68 [Error] DB Connection 종료 에러 해결: No operations allowed after statement closed [Error] DB Connection 에러 해결: No operations allowed after statement closed JSP를 MySQL과 연동하여 잘 구동되던 페이지를 다음날, 처음으로 들어갈 때마다 아래와 같은 오류가 발생했다. Cause: java.sql.SQLException: No operations allowed after statement closed. ; SQL []; No operations allowed after statement closed.; nested exception is java.sql.SQLException: No operations allowed after statement closed. 이는 Statement 객체를 close 한 후에 그 Statemen.. JVM/Java 2019. 10. 24. [Spring] 전자정부 웹프로젝트 war파일 Tomcat에 배포하는 방법 + Tomcat 포트 및 메모리 설정 [Spring] 전자정부 웹프로젝트 war파일 Tomcat에 배포하는 방법 + Tomcat 포트 및 메모리 설정 로컬 이클립스에서 개발한 프로젝트를 실제 사용할 서버에 배포할 때 단순한 JSP파일같은 경우는 간단하게 편집해서 저장할 수 있지만 JSP나 서블릿으로 프로그래밍해서 복잡한 경우에는 war파일을 만들어서 배포해야한다. 오늘은 war파일을 배포하기 위해 이클립스 웹프로젝트 Export로 war파일 생성방법 (CHAP1) , war파일 배포하기 위한 Apache Tomcat 설치방법 (CHAP2) , 배포하기 전 톰캣 서버의 포트를 변경하는 방법 (CHAP2-1) , 톰캣 서버의 메모리 설정 방법 (CHAP2-2), 생성한 war파일을 배포하는 방법(CHAP3)을 알아볼 것이다 ! CHAP1. WA.. JVM/Spring 2019. 9. 18. [Spring Boot] 프로젝트 jar파일 생성 방법과 실행 방법, 배치파일까지 ! [Spring Boot] 프로젝트 jar파일 생성 방법과 실행 방법, 배치파일까지 ! 오늘은 Spring Framework을 사용하는 프로젝트를 간편하게 셋업할 수 있는 서브 프로젝트 Spring Boot의 jar파일 생성방법과 실행방법, 그리고 배치파일 만드는 방법까지 파헤쳐보자 jar 파일 만들기 1. Eclipse 상단 메뉴의 [Window] - [Show View] - [Other] 에서 Gradle Tasks를 검색해서 열어준다. 그럼 내가 만드려는 프로젝트의 폴더를 열고 [build] 의 build를 더블 클릭해준다. 그럼 Gradle Executions 탭이 열리면서 build 결과가 나올 것이다. 에러없이 빌드가 잘 되었다면, 이제 jar파일을 만들면 되는데 그 전에 !!!!!!!!!!!!.. JVM/SpringBoot 2019. 8. 2. [Java] StringBuffer append("a"+"b") 메모리는 어떻게 할당될까? Java는 C언어처럼 포인터가 없어 메모리의 주소와 해당 값을 함께 볼 수 없는 단점이 너무 너무 너무~ 크다 ! Java 문서나 많은 글을 읽어도 메모리의 구조가 어떻게 어떤 흐름으로 돌아가는 지 내가 알고 있는 이 답이 확실한가에 대한 의문도 많이 든다. StringBuffer의 append 메소드를 사용할 때, 어떤 식으로 값이 메모리에 할당되고 흘러가는 지 내가 이해한 바를 정리하고자 한다. StringBuffer sb = nes StringBuffer(); sb.append("a"); sb.append("b"); 단순 참조를 위한 문자열은 String 클래스, 연산이 많은 경우는 가변적으로 문자열을 저장하고 관리하는 StringBuffer 클래스를 사용한다. String 과 StringBuffe.. JVM/Java 2019. 8. 1. [Java] String, StringBuffer, StringBuilder의 차이점 스윽 차이점 String 과 StringBuffer(StringBuilder), 두 클래스 모두 문자열을 담고 연산하는 것인데 차이가 뭐지? 성능이 어떻게 다르지? 궁금했던 분들에게 그 차이점을 스윽 정리해드리고자 한다! 아래 표를 보면 된다 ! String StringBuffer StringBuilder 문자열을 저장하고 관리하는 클래스 immutable (불변) mutable (가변) new 연산을 통해 생성되면 그 인스턴스의 메모리 공간은 절대 변하지 않는다. 문자열 연산을 했을 때, 메모리 공간이 변하는 것이 아닌 새로운 String 객체를 만드는 것이다. 문자열 연산에 있어서 new로 객체 생성을 한번 한 후, 연산이 필요할 때 크기를 변경시켜 문자열을 변경한다 동기화(Synchronized)를 지원.. JVM/Java 2019. 7. 30. [Java] String과 new String 차이 String 문자열 생성 방식 String str1 = new String("Hello"); String str2 = "Hello"; String str3 = "Hello"; 1. new 이용한 문자열 생성 2. 문자열 리터럴 생성 두 방식의 차이점 두 방식의 가장 큰 차이점은 메모리 영역에 있다. new 연산자를 통해 String을 생성하면 Heap 영역에 존재하게 되고, 리터럴을 이용할 경우 string constant pool이라는 영역에 존재하게 된다. (아래 그림 참고) 똑같은 "Hello" 문자열을 사용하는 데 변수 str2 와 str3은 같은 객체를 바라보지만 new String으로 생성한 str1은 다른 메모리 주소의 객체를 바라보는 것이다. 문자열을 비교해보면, String str1 = .. JVM/Java 2019. 7. 30. [Java] JAXB 활용한 Java 객체의 XML 변환 방법 JAXB 란? 위키백과를 보면 JAXB를 다음과 같이 정의한다. JAXB(Java Architecture for XML Binding) 란 자바 클래스를 XML로 표현하는 자바 API이다. JAXB는 주로 2가지 기능이 있다. 자바 객체를 XML로 직렬화하는 것이고 반대로 XML에서 자바 객체로 역직렬화하는 것이다. 즉, JAXB는 메모리의 데이터를 XML 형식으로 변환하여 저장할 수 있고, 이 과정을 위해 프로그램의 각 클래스에서 XML을 읽고 저장하는 일을 구현해야 한다. 변환에 필요한 로직만 정리해보겠다. VO 객체 설정 xml element로 사용할 객체에 @XmlRootElement 어노테이션을 등록한다. @XmlRootElement(name="linkXmlVO") @XmlAccessorType.. JVM/Java 2019. 7. 9. [Java] 개발자라면 꼭 필요한 로그관리! Logger 사용 및 log4j2.xml 설정 방법 개발자라면 꼭 필요한 로그관리, 사용방법과 설정방법을 함께 뽀개보자 ! 사용 방법 먼저 사용방법은 간단하다. 로깅 라이브러리는 slf4j 을 사용하여 내가 로그를 남길 클래스에 선언을 해주고 메소드 내에서 사용하면 된다. public class MainController(){ private final Logger LOGGER = LoggerFactory.getLogger(MainController.class.getName()); public void moveMainPage(){ LOGGER.info("Hello world!"); } } 그럼 다음과 같이 콘솔창에 찍힐 것이다. 참고로 로그 레벨은 TRACE > DEBUG > INFO > WARN > ERROR 이다. 자바를 처음 시작했을 때 System... JVM/Java 2019. 6. 22. 이전 1 ··· 3 4 5 6 다음 추천 글 728x90 반응형