나의 스프링 부트 버전이다. 3.1.4 버전으로 하면서 겪은 일은 풀어보자면
1. css폴더 안의 이미지와 관련된 주소를 모두 나의 프로젝트 폴더 구조에 맞춰서 변경해야한다.
처음에 툴바가 아니 나와서 보니깐 이 주소들 설정이 안맞아서 그런것이였다.
이건 다행이 그렇게 어렵지 않게 찾고 수정할 수 있었다...물론 일일이 확인하면서 해서 노가다 작업이였으나....이정도야...감사하다..ㅋㅋ
2. 사진을 올려야 하는데.....이게 문제이다.
<%
String return1="";
String return2="";
String return3="";
//변경 title 태그에는 원본 파일명을 넣어주어야 하므로
String name = "";
if (ServletFileUpload.isMultipartContent(request)){
ServletFileUpload uploadHandler = new ServletFileUpload(new DiskFileItemFactory());
uploadHandler.setHeaderEncoding("UTF-8");
List<FileItem> items = uploadHandler.parseRequest(request);
원 코드 인데...request부분부터 문제였다....빨간줄이 뜨는데...처음엔 뭐가 문제지????????
The method parseRequest(javax.servlet.http.HttpServletRequest) in the type ServletFileUpload is not applicable for the arguments (jakarta.servlet.http.HttpServletRequest)
에러가 남..
하루정도 형변환도 했다가 import도 다시 했다가 설정 넣었다가 지웠다가 해보다가 안되서 포기하고 집에 누웠는데......갑자기 생각났다..스프링부트는 javax.servlet.http.HttpServletRequest 가 안된다.....그래서 jakarta.servlet.http.HttpServletRequest 다 변경해줬느데 그부분은 까맣게 잊고 있었다...다음날은 그럼 어떻게 이걸로 변경해야하나를 고민했다...영어 잘 못하고 눈치만 늘은 내가 겨우 찾은 것은 apache.fileupload2로 import해야 한다는것....
https://mvnrepository.com/artifact/org.apache.commons/commons-fileupload2-core/2.0.0-M1
implementation group: 'org.apache.commons', name: 'commons-fileupload2-jakarta', version: '2.0.0-M1'
implementation group: 'commons-io', name: 'commons-io', version: '2.13.0'
implementation group: 'org.apache.commons', name: 'commons-fileupload2-core', version: '2.0.0-M1'
gradle설정도 변경해줘야 한다.
그러고 나니깐......
가 안되는것이다......뭐지??????또 apache.fileupload 버전을 설치 했다가 안했다가 쇼를 하다가 또 겨우 찾은공식문서....사실 잘 안봤는데....선배님들이 공식 문서계속 들어가시는게 조금씪 이해되고 있다...블로거를 다 믿으면 안된다는거..ㅋㅋㅋ
생성할때 전처럼 간단히가 아니라 이렇게 써야한다고 예시되어 있었다.......나를 칭찬하고 싶은 순간...ㅋㅋㅋ
요놈은 파일은 읽어들이고 잠시 보관해야 할 곳을 지정하는 녀석이라서 이렇게 만들어주었는데...사실은 AI질문한거랑 확인한 거랑 짬봉해서 넣은것이다......
.setSizeThreshold(10240) // Set the size threshold to 10 KB
하길래...그냥 맞춰서 넣었다.
3. 그다음 에러....본문에 이미지 파일을 붙여 넣어야 하는데...계속 에러인 것이다...
a.lang.IllegalArgumentException: Invalid character found in the request target [/resources/smartEditor/photo_uploader/popup/callback.html?callback_func=tmpFrame_4468_func&bNewLine=true&sFileName=taling3-search.png&sFileURL=`/resources/upLoad/202311131040129bae9bf3-21f9-44b7-82a9-2e3c7d97efdd.png ]. The valid characters are defined in RFC 7230 and RFC 3986
at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:482) ~[tomcat-embed-core-10.1.13.jar:10.1.13]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:264) ~[tomcat-embed-core-10.1.13.jar:10.1.13]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.13.jar:10.1.13]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894) ~[tomcat-embed-core-10.1.13.jar:10.1.13]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1740) ~[tomcat-embed-core-10.1.13.jar:10.1.13]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.13.jar:10.1.13]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-10.1.13.jar:10.1.13]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.13.jar:10.1.13]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-10.1.13.jar:10.1.13]
at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
그냥 검색부터 했더니 톰캣에서 특수문자를 못읽는다고 URLEncoder.encode
관련 작업을 하라고 해서 한참을 이것저것 했으나 별다른 반응이 없는것이다...........브라우저 콘솔까지 뒤져서 한참을 보고 알았다... search.png&sFileURL=`/resources/upLoad/202311131040129bae9bf3-21f9-44b7-82a9- 이부분.....
` 요것이 들어가 있었다.....타이밍 실수였던것이다.....욕나옴....
결론은 스마트에디터의 코드는 왠만하면 건들이지 마세요~~~~^^
처음에 request가 안될때 정신줄 놓고 여기저기 만졌더니만 결국은 고생했다...
이제 DB저장과 화면 호출관련된 작업은 프로젝트에 맞게끔 진행하면 된다....
제목에서 스프링부트라고 하고 fileupload 관련 2가 안붙으면 안된다는 거..........결론입니다.~~~^^
'API' 카테고리의 다른 글
땅콩포인트 결제 API 완료.... (0) | 2022.10.21 |
---|---|
아임포트 결제 api 연동.....결제 정보 DB보낼때 NULL나오는 에러 처리 (0) | 2022.10.20 |
API 심화2 : 어노테이션으로~~~ (1) | 2022.10.07 |