묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 데이터 JPA
org.hibernate.LazyInitializationException( could not initialize proxy ) 에러 질문합니다!
안녕하세요. 게시글을 등록하는 기능을 구현중인데, LazyInitializationException 에러를 해결 못하고 있습니다. 테이블 관계(Account - Post) 는 양방향 관계로 설정하였고, 다음과 같이 설정했습니다. Account 테이블 @Entity@Getter@Setterpublic class Account implements UserDetails { @Id @GeneratedValue private Integer accountNo; // 다른 컬럼들 생략... @OneToMany(mappedBy = "account") private List<Post> post = new ArrayList<>(); Post 테이블 @Entity@Getter@Setterpublic class Post { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer postNo; @ManyToOne @JoinColumn(name = "accountNo") private Account account; //다른 컬름들 생략... public void setAccount(Account account) { if(this.account != null){ this.account.getPost().remove(this); } this.account = account; this.account.getPost().add(this); } 문제가 발생한 로직 함수 부분 @PostMapping("")public ResponseEntity enrollPost(@RequestParam("file") MultipartFile multipartFile, @RequestParam("content") String content, @RequestParam("score") float score, @AuthenticationPrincipal Account account) throws Exception{ Path fileNameAndPath = Paths.get("./images/",multipartFile.getOriginalFilename()); try{ Files.write(fileNameAndPath, multipartFile.getBytes()); }catch (IOException e){ throw new InvalidImageException("이미지 업로드에 실패했습니다."); } Post post = new Post(); post.setScore(score); post.setContent(content); post.setPostPic(fileNameAndPath.toString()); post.setAccount(account); << 문제가 발생한 부분!! ############# Post save = postRepository.save(post); 위와 같습니다. 문제가 발생한 부분은 아래 함수를 처리하다가 오류가 생겼습니다. 위의 post.setAccount(account) 부분에서 public void setAccount(Account account) { if(this.account != null){ this.account.getPost().remove(this); } this.account = account; this.account.getPost().add(this); << 문제가 발생한 지점!! ##############} account.getPost()를 가져오는 부분에서 Lazy초기화에러가 발생했습니다. 해당 문제는 Account의 post @OneToMany 컬럼에 fetch = FetchType.EAGER 설정을 주면 쉽게 해결이 되는데, Post의 FetchType을 Eager로 주게 될 경우, 유저를 조회할 때마다 항상 Post를 조회하는게 성능상 문제가 될것같아서 위와 같은 방식은 사용하고 싶지 않습니다. @PostMapping 함수 로직을 실행하기전에 @AuthenticationPrincipal Account account 인증권한 확인하는부분에서 Accont의 데이터를 한번 조회해오는데, 로그는 다음과 같습니다. /* select generatedAlias0from Account as generatedAlias0where generatedAlias0.email=:param0 */ selectaccount0_.accountNo as accountN1_0_,account0_.accountId as accountI2_0_,account0_.accountName as accountN3_0_,account0_.accountPwd as accountP4_0_,account0_.authority as authorit5_0_,account0_.bio as bio6_0_,account0_.email as email7_0_,account0_.instagram as instagra8_0_,account0_.profilePic as profileP9_0_,account0_.regDate as regDate10_0_,account0_.twitter as twitter11_0_,account0_.updDate as updDate12_0_,account0_.useStateCode as useStat13_0_ fromAccount account0_whereaccount0_.email=? Account 테이블에서 Post를 참조하고 있는 리스트를 가지고 오지 않아서 에러가 발생하는것 같은데, 어떻게 하면 Account가 참조하고 있는 Post정보를 가지고올 수 있을까요? 에러가 발생한 로그는 아래와 같습니다. // 2020-01-20 22:04:40.867 ERROR 6330 --- [nio-8098-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.toffeestory.backend.account.Account.post, could not initialize proxy - no Session] with root cause//// org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.toffeestory.backend.account.Account.post, could not initialize proxy - no Session// at org.hibernate.collection.internal.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:602) ~[hibernate-core-5.3.11.Final.jar:5.3.11.Final]// at org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:217) ~[hibernate-core-5.3.11.Final.jar:5.3.11.Final]// at org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:581) ~[hibernate-core-5.3.11.Final.jar:5.3.11.Final]// at org.hibernate.collection.internal.AbstractPersistentCollection.write(AbstractPersistentCollection.java:408) ~[hibernate-core-5.3.11.Final.jar:5.3.11.Final]// at org.hibernate.collection.internal.PersistentBag.add(PersistentBag.java:386) ~[hibernate-core-5.3.11.Final.jar:5.3.11.Final]// at com.toffeestory.backend.post.Post.setAccount(Post.java:55) ~[main/:na]// at com.toffeestory.backend.post.PostController.enrollPost(PostController.java:55) ~[main/:na]
-
미해결파이썬 입문 및 웹 크롤링을 활용한 다양한 자동화 어플리케이션 제작하기
Path관련 질문.
파이참을 사용하고있습니다. C에 ImgTest라는 폴더를 만들고 savePath = "C:\ImgTest\test1.jpg" 이렇게 해서 urlretrieve를 사용하면 OSError: [Errno 22] Invalid argument: 'C:\\ImgTest\test1.jpg' 이런 에러가 나옵니다. 그런데 E드라이브를 path로 해주면 어느 폴더든 간에 아무 문제없이 잘 됩니다. 그리고 savePath = "C:test1.jpg" 이렇게 하면 Section2프로젝트 파일안에 저장이 되는데 뭐가 문제인건가요?
-
미해결누구든지 하는 리액트: 초심자를 위한 react 핵심 강좌
PhoneList.js 와 PhoneInfo.js 를 나누는 이유
파일 구조를 보면 제가 이해하기로는 PhoneForm.js : 이름과 전화번호를 입력받고 입력상태를 App.js 로 넘기기 PhoneInfoList.js : App.js 에 데이터를 PhoneInfoList.js 에서 받고 데이터를 map으로 돌려서 list 로 만들어준 후 PhoneInfo.js : PhoneInfoList 에서 받은 list 를 style 에 맞게 보여준다. 이렇게 이해를 했는데요. PhoneInfoList 와 PhoneInfo 를 구분한 이유가 궁금합니다. App.js 의 데이터를 PhoneInfo 에서 받아서 map 을 사용해서 바로 style 에 맞게 화면이 보여주게 할 수도 있을텐데 List 로 만들어주고 화면에 보여주는 파일을 구분해주는 이유가 무엇인가요?
-
미해결React로 NodeBird SNS 만들기
질문이요
req.body에는 클라이언트가 보낸 본문이 들어있고, Header에는 뭐가 들어 있죠?
-
미해결레트로의 유니티 C# 게임 프로그래밍 에센스
다시 빌드할때
빌드를 하고 오류를발견해서 오류를 수정한 후 다시빌드를 하려고 할때 이전에 빌드해놨던 똑같은 폴더에 다시 빌드를 해도 되나요?
-
React로 NodeBird SNS 만들기
안녕하세요 질문 있습니다!
삭제된 글입니다
-
해결됨윤재성의 Java 기반 Android 9.0(pie) App 개발 고급 3단계
해결안되는 에러.. Failed to find configured root that contains /null/
로그 에러 메세지 ---------------------------------------------------- Caused by: java.lang.IllegalArgumentException: Failed to find configured root that contains /null/불량1579517621338.jpg <--(파일이름) ---------------------------------------------------- xml 파일 --------------------------------------------------- <paths xmlns:android="http://schemas.android.com/apk/res/android"><external-path name="storage/emulated/0" path="."/></paths>--------------------------------------------------------메인 엑티비티 문제가 되는 매서드-------------------------------------------------------- public void button(View v) { Intent intent = new Intent((MediaStore.ACTION_IMAGE_CAPTURE)); String name = "/불량" + System.currentTimeMillis() + ".jpg"; String pic_path = path + name; File file = new File(pic_path); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { contenturi = FileProvider.getUriForFile(this, "co.co", file); } else { contenturi = contenturi.fromFile(file); } intent.putExtra(MediaStore.EXTRA_OUTPUT, contenturi); startActivityForResult(intent, 0);} ------------------------------------------------------ manifest provider 부분 ----------------------------------------------------- <provider android:authorities="co.co" android:name="androidx.core.content.FileProvider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/xml"/></provider>------------------------------------------------------- 구글링 해보니까 xml 파일에 이상이 있다는것 같은데요. 정상 작동하는 앱의 코드를 전부 복사 붙여넣기 해도 저 에러가 뜹니다. 저 에러는 어떤 경우에 발생하는 건가요?
-
미해결홍정모의 따라하며 배우는 C언어
scanf함수
scanf 동작 방식이 이해가 잘안가요~ &기호가 주소를 간접적으로 표시하는건 알겠는데 왜 그렇게 하는지 아직도 개념이 잘 안잡힙니다 ㅠ
-
미해결[OpenCV] 파이썬 딥러닝 영상처리 프로젝트 - 손흥민을 찾아라!
mnist 오류
선생님 안녕하세요. 질문이 있습니다 100 mnist digit 실행하기 했는데 --------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-1-53a8acc96182> in <module> 28 ax.grid(which='major', alpha=0.5) 29 ---> 30 ax.imshow(x_test_original[selected_image], cmap=plt.cm.binary) 31 32 plt.show() NameError: name 'x_test_original' is not defined이 오류가 계속 뜨는데 왜 그런지 알 수 있을까요??
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
data 변경에 방법에 대해 질문드립니다.
todoItems의 원본 데이터 변경 측면에서 slice가 아닌 splice 사용을 강조하셨는데, 리액트와 비교해서 궁금증이 생겨서 질문드립니다. 리액트에서는 state변경시 이전 state의 불변성을 유지하기 위해 새로운 객체를 생성하여 넣는 방식을 사용하는데 뷰에서는 이와는 반대되는 개념인가요? 저는 this.todoItems = [선택된 아이템이 제거된 새로운 배열] 이렇게 구현할거라 생각했었는데 예상과 달라서 질문드립니다. 두 가지 방법 모두 정상적으로 동작하는 것처럼 보입니다만 후자의 경우 제가 모르는 잠재적 문제가 있는것인가요?
-
미해결Node.js 교과서 - 기본부터 프로젝트 실습까지
6강 미들웨어 꿀팁들에서 에러 처리 관련 질문 드립니다.
안녕하세요 ZeroCho 님, 6강 미들웨어 꿀팁들 강좌에서 에러 처리 관련 질문 드립니다. res.locals.error = req.app.get('env') === 'development' ? err: {}; 1) 이 구문에서 req.app.get('env') 가 반환하는 반환값이 어떻게 되는지 알수 있을까요? Express 사이트에서는 app.configure() 함수가 제거되고 대신 app.get('env') 나 process.env 로 대체 되었 다고 나와 있더라구요. 2) req.app.get('env') 에서 'env' 와 app.use(logger('dev')) 에서 'dev' 가 정확히 무엇인지 잘 모르겠 습니다. 혹시 이게 predefined event (미리 정의된 이벤트) 인가요? 감사 합니다.
-
해결됨Node.js로 웹 크롤링하기
sequelize init error
sequelize, sequelize-cli 설치 이상없이 완료되었는데, init시 하기와 같이 또는 보안에러를 어떻게 조치하면 될까요? ----------------------------------------------- sequelize : 이 시스템에서 스크립트를 실행할 수 없으므로 C:\Users\Admin\AppData\Roaming\npm\sequelize.ps1 파일을 로드할 수 없습니다. 자세한 내용은 about_Execution_Policies(https://go.microsoft.com/fwlink/?LinkID=135170)를 참조하십시오. 위치 줄:1 문자:1 + sequelize init; + ~~~~~~~~~ + CategoryInfo : 보안 오류: (:) [], PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess
-
미해결React로 NodeBird SNS 만들기
dispatch를 순차적으로 실행하는 방법?
예를 들어 두 가지의 비동기 디스패치 A, B가 있다고 했을 때, A_SUCCESS가 실행되면 바로 B_REQUEST를 실행하고 싶습니다. 저 같은 경우는 우선, redux-saga에 A_SUCCESS를 watch하는 함수를 만들어서 A_SUCCESS가 디스패치 될 경우 바로 B_REQUEST를 put되게 만들었는데요. 이게 정석적인 방법인 건지, 더 간단한 방법이 있다거나 이때 사용할 수 있는 saga 함수가 있는 지 궁금합니다.
-
해결됨React로 NodeBird SNS 만들기
에러 질문입니다.
어제 까지는 잘됬는데 문제가 생겨서 다시 설치하니 에러가 출력되네요 로컬에서는 잘되지만 aws에서는 오류가 출력됩니다. UserProfile 소스를 제로초님의 깃허브와 비교해본 결과 내용은 같았습니다. 복붙으로 해봣는데도 같은 오류가 출력되네요
-
해결됨스프링 기반 REST API 개발
Rest Docs 관련 문의 드립니다
본 강의를 듣고 다른 프로젝트에 Rest Docs를 적용해보고 있는데, 적용 도중 몇가지 문의 사항이 있습니다. 1. List의 각 요소에 self 링크 넣는 방법 강의 내용중에 Page의 각 요소에 PageResourcesAssembler를 이용해서 self 링크를 넣는 내용이 있었는데, Page가 아닌 List로 리턴하는 메소드에서를 어떻게 구현해야 될까요? 2. Resource 클래스를 상속한 클래스의 리턴시 에러 발생 Resource 클래스를 상속해서 링크를 생성해주는 클래스를 만들었습니다. 그리고 그 클래스를 리턴하게 했는데, 테스트에서는 통과가 되는데 실제 API 호출을 할 때는 에러가 발생합니다. 어떤 부분이 문제인지 문의드립니다. <에러 내용> org.springframework.http.converter.HttpMessageConversionException: Could not instantiate JAXBContext for class [class link.myrecipes.api.common.RestResource]: Implementation of JAXB-API has not been found on module path or classpath.; nested exception is javax.xml.bind.JAXBException: Implementation of JAXB-API has not been found on module path or classpath. - with linked exception: [java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory] at org.springframework.http.converter.xml.AbstractJaxb2HttpMessageConverter.getJaxbContext(AbstractJaxb2HttpMessageConverter.java:117) ~[spring-web-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.http.converter.xml.AbstractJaxb2HttpMessageConverter.createMarshaller(AbstractJaxb2HttpMessageConverter.java:51) ~[spring-web-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter.writeToResult(Jaxb2RootElementHttpMessageConverter.java:180) ~[spring-web-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.http.converter.xml.AbstractXmlHttpMessageConverter.writeInternal(AbstractXmlHttpMessageConverter.java:84) ~[spring-web-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:227) ~[spring-web-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:293) ~[spring-webmvc-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor.handleReturnValue(HttpEntityMethodProcessor.java:225) ~[spring-webmvc-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:82) ~[spring-web-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:122) ~[spring-webmvc-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:892) ~[spring-webmvc-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797) ~[spring-webmvc-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1039) ~[spring-webmvc-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942) ~[spring-webmvc-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005) ~[spring-webmvc-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:897) ~[spring-webmvc-5.1.9.RELEASE.jar:5.1.9.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:634) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882) ~[spring-webmvc-5.1.9.RELEASE.jar:5.1.9.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.22.jar:9.0.22] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) ~[spring-web-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118) ~[spring-web-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92) ~[spring-web-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118) ~[spring-web-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93) ~[spring-web-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118) ~[spring-web-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) ~[spring-web-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118) ~[spring-web-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:853) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na] Caused by: javax.xml.bind.JAXBException: Implementation of JAXB-API has not been found on module path or classpath. at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:278) ~[jaxb-api-2.3.1.jar:2.3.0] at javax.xml.bind.ContextFinder.find(ContextFinder.java:421) ~[jaxb-api-2.3.1.jar:2.3.0] at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:721) ~[jaxb-api-2.3.1.jar:2.3.0] at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:662) ~[jaxb-api-2.3.1.jar:2.3.0] at org.springframework.http.converter.xml.AbstractJaxb2HttpMessageConverter.getJaxbContext(AbstractJaxb2HttpMessageConverter.java:112) ~[spring-web-5.1.9.RELEASE.jar:5.1.9.RELEASE] ... 55 common frames omitted Caused by: java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory at org.springframework.boot.web.embedded.tomcat.TomcatEmbeddedWebappClassLoader.loadClass(TomcatEmbeddedWebappClassLoader.java:68) ~[spring-boot-2.1.7.RELEASE.jar:2.1.7.RELEASE] at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at javax.xml.bind.ServiceLoaderUtil.nullSafeLoadClass(ServiceLoaderUtil.java:122) ~[jaxb-api-2.3.1.jar:2.3.0] at javax.xml.bind.ServiceLoaderUtil.safeLoadClass(ServiceLoaderUtil.java:155) ~[jaxb-api-2.3.1.jar:2.3.0] at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:276) ~[jaxb-api-2.3.1.jar:2.3.0] ... 59 common frames omitted <클래스 코드> public class RestResource<T> extends Resource<T> { public RestResource(T content, String key, Class<?> controllerClass, LinkType[] addLinks, String linkPrefix, Link... links) { super(content, links); add(linkTo(controllerClass).slash(key).withSelfRel()); List<LinkType> addLinkList = Arrays.asList(addLinks); if (addLinkList.contains(LinkType.CREATE)) { add(linkTo(controllerClass).withRel(linkPrefix + "-create")); } if (addLinkList.contains(LinkType.READ)) { add(linkTo(controllerClass).withRel(linkPrefix + "-read")); } if (addLinkList.contains(LinkType.UPDATE)) { add(linkTo(controllerClass).withRel(linkPrefix + "-update")); } if (addLinkList.contains(LinkType.DELETE)) { add(linkTo(controllerClass).withRel(linkPrefix + "-delete")); } if (addLinkList.contains(LinkType.QUERY)) { add(linkTo(controllerClass).withRel(linkPrefix + "-query")); } } public RestResource(T content, Link... links) { super(content, links); } public void addProfileLink(String profileLink) { add(new Link(profileLink).withRel("profile")); } public Link selfLink() { return getLinks("self").get(0); } }
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 유튜브 사이트 만들기
썸네일 생성 오류입니다.
[0] Error: Cannot find ffprobe [0] at C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\fluent-ffmpeg\lib\ffprobe.js:145:31 [0] at C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\fluent-ffmpeg\lib\capabilities.js:194:9 [0] at C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\async\dist\async.js:473:16 [0] at next (C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\async\dist\async.js:5329:29) [0] at C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\async\dist\async.js:969:16 [0] at C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\fluent-ffmpeg\lib\capabilities.js:186:13 [0] at C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\fluent-ffmpeg\lib\capabilities.js:123:9 [0] at C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\async\dist\async.js:473:16 [0] at next (C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\async\dist\async.js:5329:29) [0] at C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\async\dist\async.js:969:16 [0] at C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\fluent-ffmpeg\lib\capabilities.js:116:11 [0] at C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\fluent-ffmpeg\lib\utils.js:223:16 [0] at F (C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\which\which.js:68:16) [0] at E (C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\which\which.js:80:29) [0] at C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\which\which.js:89:16 [0] at C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\isexe\index.js:42:5 [0] C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\server\routes\video.js:55 [0] console.log(metadata.format.duration); [0] ^ [0] [0] TypeError: Cannot read property 'format' of undefined [0] at C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\server\routes\video.js:55:26 [0] at handleCallback (C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\fluent-ffmpeg\lib\ffprobe.js:106:9) [0] at C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\fluent-ffmpeg\lib\ffprobe.js:145:16 [0] at C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\fluent-ffmpeg\lib\capabilities.js:194:9 [0] at C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\async\dist\async.js:473:16 [0] at next (C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\async\dist\async.js:5329:29) [0] at C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\async\dist\async.js:969:16 [0] at C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\fluent-ffmpeg\lib\capabilities.js:186:13 [0] at C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\fluent-ffmpeg\lib\capabilities.js:123:9 [0] at C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\async\dist\async.js:473:16 [0] at next (C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\async\dist\async.js:5329:29) [0] at C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\async\dist\async.js:969:16 [0] at C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\fluent-ffmpeg\lib\capabilities.js:116:11 [0] at C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\fluent-ffmpeg\lib\utils.js:223:16 [0] at F (C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\which\which.js:68:16) [0] at E (C:\DEV\HTML\youtubeclone\boilerplate-mern-stack-master\node_modules\which\which.js:80:29) [0] undefined [0] [nodemon] app crashed - waiting for file changes before starting... 오류메세지 xhr.js:155 POST http://localhost:3000/api/video/thumbnail 504 (Gateway Timeout) createError.js:17 Uncaught (in promise) Error: Request failed with status code 504 at createError (createError.js:17) at settle (settle.js:19) at XMLHttpRequest.handleLoad (xhr.js:60) 윈도우 환경이구요 ffmpeg 설치후 환경변수까지 설정하여 동작하는것 확인했구요. 동영상 업로드시 uploads 폴더에는 업로드 되지만 썸네일 폴더 생성 및 파일들은 생성되지 않습니다.
-
미해결React로 NodeBird SNS 만들기
formdata 관련 질문입니다
formdata 객체는 자바스크립트 내장객체인가요?
-
미해결Node.js로 웹 크롤링하기
에러 질문
제로초님 깃헙 코드(https://github.com/ZeroCho/nodejs-crawler/blob/master/7.image-scroll/index.js)로 돌려봤는데 Error: Evaluation failed: TypeError: Cannot read property 'src' of null 에러가 나오는데 왜 그런거죠? puppeteer버전이 바껴서 그런걸까요? unsplash.com 태그는 그대로 인것 같습니다.
-
미해결생활코딩 - 자바스크립트(JavaScript) 기본
alert 문제
자바스크립트로 "ㅎㅇ"를 뜨게 만들었는데 ㅎㅇ 대신 ���� 이렇게 뜹니다 어떻게 한글로 뜨게 하나요
-
미해결요즘 누가 유료로 웹서비스 구축 하나, Firebase의 모든것
SDK 추가 분기점
안녕하세요 수강생 입니다. 현재 Firebase SDK 초기화 방식이 호스팅 URL에서 추가 하는 방식과 CDN에서 추가하는 방식 두가지 분기점이 있습니다. 각각 어떤점이 다른걸까요??