파일 업로드는 쉬운듯 쉽지 않고 항상 프로젝트의 이슈의 중심에 서있는것 같다. 갑자기 잘 되던 파일 업로드 기능이 안되는 문제가 생겼다. // Create a factory for disk-based file items DiskFileItemFactory factory = new DiskFileItemFactory(); // Configure a repository (to ensure a secure temp location is used) ServletContext servletContext = this.getServletConfig().getServletContext(); File repository = (File) servletContext.getAttribute("javax.servlet.cont..
프로젝트를 import를 했더니 다음과 같은 오류가 발생하였다. javax.xml.bind.* 하위에 있는 JAXBContext, JAXBException, Unmarshaller 이런 애들을 찾을수가 없다고 나온다. 원인을 파악해보니 import 한 프로젝트는 JDK 1.8로 진행을 했는데 내 로컬 개발환경(STS)에서는 JDK 11 버전을 사용하고 있어서 위와 같은 오류가 발생을 한 것이다. 이게 다른데 왜 오류가 발생하냐면 JDK 11에서는 jaxb dependency가 사라졌기 때문이다. 즉 JDK 1.8이 설치되어 있으면 jaxb를 따로 종속성 추가를 해주지 않아도 되었었는데 JDK 11 부터는 별도로 넣어줘야 한다는 것이다. 조치는 다음과 같이 JDK 11으로 되어 있는 설정을 바꿔주면 된다...
이클립스에서 프로젝트를 새로 import 해서 받았는데 the import javax servlet http cannot be resolved 오류가 발생하였다. 문제가 되는 클래스들은 javax.servlet.http.* 에 속해있는 HttpServletRequest, HttpServletResponse 등등이다. 원인은 Java 자체적으로 Servlet을 포함하고 있지 않기 때문이다. 따라서 프로젝트에 Servlet package를 포함시켜주면 된다. 보통은 WAS에서 이런 Servlet package를 가지고 있으므로 프로젝트 Runtime에 참조할 수 있도록 조치를 해주면 된다. 필자는 tomcat 환경에서 진행을 하도록 하겠다. 일단 이클립스에 tomcat이 설치가 되어 있지 않아서 tomcat..
Invalid character found in method name .. HTTP method names must be tokens 이런 이상한 오류가 떨어지며 화면에서는 아예 페이지를 찾을 수 없다는 오류가 나온다. [18:02:15.721][INFO ][o.a.coyote.http11.Http11Processor.log:line175] - Error parsing HTTP request header Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level. java.lang.IllegalArgumentException: Invalid character found in method name [0x160x..
내가 새로운 JDK를 받아서 JAVA_HOME 설정을 변경했는데 제대로 반영이 안된 경우가 몇번 있었다. 물론 생각해보면 다 내 실수였다. 어떤 실수들을 저질렀나 한번 추억을 곱씹어 보자. 1. Path 설정 실수 이게 아마 가장 흔한 일이라고 생각이 된다. Windows에서 JAVA_HOME을 설정하기 위해서는 보통은 JAVA_HOME이라는 변수를 만들고 그곳에 설치한 Java 디렉토리를 매핑시킨다. 이런식으로 하위에 bin, conf, lib 등등의 폴더를 가진 디렉토리를 보통 JAVA_HOME으로 잡는다. 그리고 시스템 변수 중 Path 에서는 JAVA_HOME을 등록을 해줘야 한다. 위와 같이 %JAVA_HOME%\bin 으로 설정을 정확하게 해줘야 한다. %JAVA_HOME%bin, %JAVA_..
모든게 Open이 되어가는 세상이다. 공짜는 누구나 다 좋아하지만 왜 내머리만 이렇게 없어지고 있는지.. 불공평하다. 공짜를 좋아하면 머리가 벗겨진다는 말을 한 희대의 사기꾼을 잡아서 족치고 싶다. 잡설은 그만 하고 말로만 많이 들어봤던 OpenJDK를 설치해 보도록 하자. 여러가지 OpenJDK 구현체가 있지만 필자가 다룰 내용은 Azul Zulu라는 OpenJDK 구현체이다. Zulu를 어떻게 받고 어떻게 설치하는지 살펴보도록 하자. OpenJDK Zulu 설치 Java Download | Java 8, Java 11, Java 13 - Linux, Windows & macOS Download Java Builds of OpenJDK 8, 11, 13 & 15. Azul Zulu Builds of O..
File과 관련된 백엔드단 테스트가 필요한 경우가 종종 있다. File을 MultipartFile 형식으로 바꾸어서 처리를 해줘야 하는 경우가 있는데 어떻게 해야 하는지 난감하다. 그럴때는 아래와 같은 로직을 추가함으로써 MultipartFile을 얻을 수 있다. File file = new File("C:\\temp\\test.xlsx"); DiskFileItem fileItem = new DiskFileItem("file", Files.probeContentType(file.toPath()), false, file.getName(), (int) file.length() , file.getParentFile()); InputStream input = new FileInputStream(file); Ou..
Eclipse에서 Java 파일들에 대해 JavaDoc을 생성하는 방법은 지난 포스팅에서 살펴보았다. 하지만 이건 말그대로 Java 파일들에 대해서 할 수 있다. JavaScript라서 혹시 되나 해봤는데 역시 안된다. 하지만 역시 이세계는 없는게 없다. JS 파일을 JSDoc으로 생성해주는 tookit이 있었고 사용법을 공유하고자 한다. Toolkit Download & Install Google Code Archive - Long-term storage for Google Code Project Hosting. code.google.com 위의 사이트에서 툴킷을 다운받을 수 있다. Windows, Linux, MacOS 관계없이 사용이 가능하다. 제일 위에 있는 파일을 받으면 된다. 설치파일을 받고 ..