웹한글기안기 setTextFile 할 때 오류 발생2

  • 아래 질문사항의 추가 질문입니다.

웹한글기안기 setTextFile 할 때 오류 발생 - 웹한글 기안기 - 한컴디벨로퍼 포럼

개발환경에서와 실서버환경에서 테스트 해 봤을 때, 실서버 환경에서만 오류가 발생하고 있습니다. 모두 v2 버전이 설치 되었고, 모든 이미지에서 발생하는 것이 아니라 특정 이미지에서만 발생하는 것 같습니다. filterserver.log의 오류 로그는 아래와 같습니다.

로그 상 확장자의 문제는 아닌 것 같습니다. 한글 내용을 복사 붙여넣기 한 후 웹한글 기안기에서 이미지를 불러오지 못 하는 것 같은데, 어떤 조치를 취해야 할까요?

추가내용

  • 문제가 발생하는 한글파일에 OLE 개체와 수식이 포함 되어 있는데, 이 부분을 제거하면 문제가 발생하지 않습니다. 다만, 개발환경과 실서버환경이 동일하게 문제가 발생하는 것이 아니라서 특정 옵션값이 영향을 미칠 수 있는지 검토 부탁드립니다.

2025-06-23 16:18:08.097 INFO [http-nio-8080-exec-126] [com.hancom.hwp.service.connect.AbsHwpCommandConnect.executeResult(AbsHwpCommandConnect.java:36)] - result: 0
2025-06-23 16:18:08.104 INFO [http-nio-8080-exec-126] [com.hancom.webhwp.control.filter.controller.OpenController.convert(OpenController.java:263)] - [ADMIN_LOG][OPEN] : (true) From : cd852037-0215-4aeb-8afa-2576516af5b6. , To : cd852037-0215-4aeb-8afa-2576516af5b6..json
2025-06-23 16:18:08.126 ERROR [http-nio-8080-exec-129] [com.hancom.webhwp.control.filter.controller.DataController.writeDataStream(DataController.java:151)] - File not Exist : /app/data/upload/b72abb86-3168-4c5a-a326-8f501a1d64df/json/images/01DBE40EF817F3F400002C0C.png
2025-06-23 16:18:08.127 ERROR [http-nio-8080-exec-129] [com.hancom.webhwp.control.exception.ExceptionControllerAdvice.controllerException(ExceptionControllerAdvice.java:63)] - controllerException :
com.hancom.webhwp.control.exception.ControllerException: null
at com.hancom.webhwp.control.exception.DefaultException.controllerException(DefaultException.java:41) ~[classes/:?]
at com.hancom.webhwp.control.filter.controller.DataController.writeDataStream(DataController.java:152) ~[classes/:?]
at com.hancom.webhwp.control.filter.controller.DataController.jsonimage(DataController.java:122) ~[classes/:?]
at sun.reflect.GeneratedMethodAccessor289.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_402]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_402]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.32.jar:5.3.32]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.32.jar:5.3.32]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.32.jar:5.3.32]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:898) ~[spring-webmvc-5.3.32.jar:5.3.32]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:809) ~[spring-webmvc-5.3.32.jar:5.3.32]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.32.jar:5.3.32]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072) [spring-webmvc-5.3.32.jar:5.3.32]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965) [spring-webmvc-5.3.32.jar:5.3.32]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) [spring-webmvc-5.3.32.jar:5.3.32]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) [spring-webmvc-5.3.32.jar:5.3.32]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:529) [servlet-api.jar:4.0.FR]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) [spring-webmvc-5.3.32.jar:5.3.32]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:623) [servlet-api.jar:4.0.FR]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199) [catalina.jar:9.0.96]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) [catalina.jar:9.0.96]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) [spring-web-5.3.32.jar:5.3.32]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.32.jar:5.3.32]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) [catalina.jar:9.0.96]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) [catalina.jar:9.0.96]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) [tomcat-websocket.jar:9.0.96]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) [catalina.jar:9.0.96]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) [catalina.jar:9.0.96]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168) [catalina.jar:9.0.96]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [catalina.jar:9.0.96]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) [catalina.jar:9.0.96]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) [catalina.jar:9.0.96]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [catalina.jar:9.0.96]
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660) [catalina.jar:9.0.96]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [catalina.jar:9.0.96]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346) [catalina.jar:9.0.96]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:383) [tomcat-coyote.jar:9.0.96]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-coyote.jar:9.0.96]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:937) [tomcat-coyote.jar:9.0.96]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791) [tomcat-coyote.jar:9.0.96]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-coyote.jar:9.0.96]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) [tomcat-util.jar:9.0.96]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-util.jar:9.0.96]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) [tomcat-util.jar:9.0.96]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_402]

안녕하세요^^
OLE 개체의 경우 윈도우 ActiveX 환경에서만 지원을 하고있습니다.
문서내에서 OLE개체 자체에 미리보기이미지가 들어있다면 해당 이미지를 보여줄수 있겠지만,
그런게 없는 OLE개체의 경우 OLE에 대한 렌더를 못하기 때문에 이미지 표시가 어렵습니다.
감사합니다 ^^

'수식’도 동일하게 지원하지 않는건가요? 개발 서버에 설치 된 웹한글기안기에서는 OLE 개체가 포함 되어 있어도 출력이 되는데 이건 어떤 이유일까요?

아래 이미지를 보시면 사무실의 자체 개발 환경에서는 OLE 개체, 차트, 수식 모두 잘 나옵니다. 현장에 설치 된 웹기안기에서 출력 시에는 OLE 개체, 수식이 포함 되어 있으면 오류가 발생하면서 멈춰버립니다.
둘 다 v2 버전이 설치 되어 있고, 상세 버전은 지금 알 수가 없어서 필요하시면 추가로 댓글 남기겠습니다.
(개발 환경 웹기안기 버전은 13.82.0.128 입니다.)

또한, OLE 개체 혹은 수식이 있을 경우 한글기안기 내부에서 판단할 수 있는 함수 같은 게 있으면 안내 부탁드립니다.

OLE 개체는 미리보기 이미지를 포함하고 있으면 보여지고, 수식, 차트 개체는 정상적으로 보여야 합니다.
로그 내용으로는 변환 시 오류가 발생하는 것 같습니다.
데몬서버 로그 확인이 필요할 것 같고,
혹시 운영 서버에 ko-kr.utf8 로케일이 정상적으로 설치되어있는지 확인해보시기 바랍니다.