안녕하세요 좋은 강의를 무료로 올려주셔서 정말 잘 보고있습니다. 보여주신 패키지 구조가 헥사고날 패키지 구조에 기반 하셨다고 다른 글에서 말씀을 해주셨던 것을 봤습니다. 그럼 controller 를 넣게 된다면 port 에 in 폴더를 넣고 다시 나누는 작업을 하시나요? 그리고 실무에서도 Controller 없이 Service 에 바로 GetMapping 을 넣어도 괜찮을까요? 감사합니다!
안녕하세요. 강사님. 강의 25 파일 업로드 듣던 중에 궁금한게 있어서 질문 드립니다. String uploadPath = request.getServletContext().getRealPath("")+File.separator+UPLOAD_DIR; 위의 uploadPath를 출력 해보니 C:\eGovFrame-.9.0\workspace.edu\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\MVC07\\file_repo 이렇게 출력이 됩니다. 그런데 file_repo 폴더 앞에 \\ 역슬래쉬가 2개 생겼는데, 디렉터리가 생성되는 이유가 무엇인가요? 그리고 File.separator 없어도(request.getServletContext().getRealPath("")+UPLOAD_DIR) 디렉터리가 생성이 되었는데 File 객체 내에서 알아서 처리해주는 건가요? 감사합니다.
Could not connect to New MySQL. Error creating SQL Model Connection connection to New MySQL. (Error: Could not create connection to database server.) Could not create connection to database server. Error creating JDBC Connection connection to New MySQL. (Error: Could not create connection to database server.) Could not create connection to database server. 계속 이 에러가 뜨면서 Mysql 연결이 안됩니다.. 구글링 해봤는데도 해결이 안되네요..
안녕하세요..! 여쭤보고 싶은게 있어서 질문 남깁니다. 현재 테스트의 구조가 ApiTest 라는 클래스를 상속받아서 ProductApiTest를 만들게 되었습니다. class ProductApiTest extends ApiTest {} 제가 하고 싶은 것은 코드의 중복을 줄이고 싶습니다. class ProductApiTest extends ApiTest { @BeforeEach void setUp() { ProductSteps.상품등록요청(ProductSteps.상품등록요청_생성()); } } 이런식으로 상품 조회와 상품 수정을 하게 될때 상품을 등록하게 되는데 이런 코드를 한번만 작성하면 어떨까 생각합니다. 근데 이렇게 테스트를 돌리니 Connection refused 이라는 에러 메세지가 나오면서 테스트가 안돌아갑니다. 아마 RestAssured.port 가 설정이 안되어서 그런것같습니다. 이제 그러면 ApiTest의 필드들은 protected로 수정합니다. class ProductApiTest extends ApiTest { @BeforeEach void setUp() { if (RestAssured.port == RestAssured.UNDEFINED_PORT) { RestAssured.port = port; databaseCleanup.afterPropertiesSet(); } databaseCleanup.execute(); ProductSteps.상품등록요청(ProductSteps.상품등록요청_생성()); } } 이렇게 하면 잘 돌아가는것을 확인했습니다. SET REFERENTIAL_INTEGRITY FALSE Hibernate: TRUNCATE TABLE products Hibernate: ALTER TABLE products ALTER COLUMN ID RESTART WITH 1 Hibernate: SET REFERENTIAL_INTEGRITY TRUE 위의 DatabaseCleanup도 한번씩만 돌아가는것을 확인했습니다. 근데 이렇게 재정의 해서 사용하는것이 맞는 방식인가..? 하는 생각이 들기도하고 이런 상황에서는 어떻게 해결하면 될까 싶어서 질문 남깁니다!
MVC02에서 새롭게 만든 memberRegister를 실행해서 회원가입을 했을 때 memberList.jsp로 이동하지 않고 계속해서 memberInsert.do 로 이동하려고 합니다. 제가 만든 파일들 중에 MVC01로 이동할만한 코드를 적었는지도 확인해보고 MVC01 자체를 삭제하고 실행도 해보았지만 계속해서 같은 페이지로 이동합니다. 미숙한 실력으로 제가 할 수 있는 이런저런 조치는 다 해봤는데 이 문제를 해결할 수 있는 다른 방법이 있을까요?
https://www.inflearn.com/questions/328457/mysql-root-%EB%B9%84%EB%B2%88 위 학생과 정확히 같은 문제를 겪고 있습니다. 기존에 mysql 이나 oracle 도 깔려있지 않은 상태에서 전자 정부 프레임워크를 새로 깔았습니다.(다만, 수업과 같은 버전이 서비스 종료되어 eGovFrame-4.0.0 로 깔았음) 위처럼 Enter password: 까지 잘 접근 했는데 엔터를 누르니 1045 에러가 뜹니다.오타 문제는 아닙니다ㅜㅜ MySQL 5.7 버전부터 임의의 문자열로 초기 비밀번호가 설정돼 있다는 이야기도 있더라고요.. 여하튼..빨리 진도 나가고 싶습니다! 빠른 해결 부탁드립니다..ㅜㅜ
평소에는 바로 insert , delete 됐는데 등록 버튼을 눌러도 한참 기다리다가 갑자기 timeout에러가 뜨네요ㅜ 그래서 테이블 자체를 drop하려고 해도 sql의 status창에 started 라고 뜨고 succeed나 failed도 안뜨구요..ㅠ어떻게하면 좋을까요..
오류 질문 드립니다! 수업자료로 주신war파일을 import 해서 사용중이었는데 회원가입을 하려고 해도 사진과 같은 내용의 오류만 뜨고 insert가 제대로 되지 않습니다ㅠㅠ 5월 11, 2023 11:57:04 오후 org.apache.catalina.core.StandardWrapperValve invoke 심각: 경로 [/MVC01]의 컨텍스트 내의 서블릿 [kr.bit.controller.MemberInsertController]을(를) 위한 Servlet.service() 호출이, 근본 원인(root cause)과 함께, 예외 [not insert]을(를) 발생시켰습니다. javax.servlet.ServletException: not insert at kr.bit.controller.MemberInsertController.service(MemberInsertController.java:47) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:609) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:810) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1623) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748) 5월 12, 2023 1:09:10 오전 org.apache.catalina.core.StandardWrapperValve invoke 심각: 경로가 [/MVC01]인 컨텍스트의 서블릿 [kr.bit.controller.MemberInsertController]을(를) 위한 Servlet.service() 호출이 예외를 발생시켰습니다. java.lang.NumberFormatException: null at java.lang.Integer.parseInt(Integer.java:542) at java.lang.Integer.parseInt(Integer.java:615) at kr.bit.controller.MemberInsertController.service(MemberInsertController.java:23) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:609) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:810) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1623) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748) 콘솔창에 뜨는 오류는 이와 같습니다. 이런 오류는 어떻게 해결해야할까요? 최대한 혼자서 해결해보려했지만 이 부분에서 계속 막혀서 글 남깁니다.
MySQL이나 H2 에서 TRUNCATE TABLE 시 AUTO_INCREMENT 컬럼값도 1로 초기화되는 걸로 알고 있습니다. 그런데 강의에서는 TRUNCATE 후 AUTO_INCREMENT 컬럼인 ID 를 1부터 다시 시작하게 하는 쿼리를 추가하셔서 어떤게 맞는건지 헷갈립니다 좋은 강의 감사합니다
public int memberUpdate(MemberVO vo) { String SQL = "update member set age='" + vo.getAge() + "', email='" + vo.getEmail() + "', phone='" + vo.getPhone() + "' where num='" + vo.getNum() + "'"; int cnt = -1; getConnect(); try { stmt = conn.createStatement(); cnt = stmt.executeUpdate(SQL); } catch (Exception e) { e.printStackTrace(); } finally { dbClose(); } return cnt; } 안녕하세요 강사님 저는 사이버 보안을 공부하는 학생입니다. MVC2 까지 듣고 문득 SQL인젝션이 가능한지 궁금해 실험해보니 preparedStatement를 사용하고 있어서 특정한 상황이 아닌 이상 발생하지 않는다는 걸 알게되었습니다. 그래서 Statement를 사용하면 인젝션이 성공하는지 궁금해 실험해봤는데 코드가 안전해서 그런건지 제가 실력이 부족해서인지 모르겠지만 인젝션에 계속 실패했습니다. 버프 스위트인 프록시 도구로 phone 또는 mail 파라미터 값을 조작했는데요 이해가 안가는 부분이 phone 파라미터에 ' or 1=1; # 이 쿼리를 사용하면 주석이 작동되어서 모든 테이블의 phone 컬럼이 1로 바뀌는데 ' ; update member set phone=010-4444-4444 where num=[일련번호]; # 이 쿼리를 사용하면 주석이 작동하지 않아 인젝션이 성공하지 않습니다. 혹시 무엇때문인지 아신다면 도움 부탁드립니다!
http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd xsd옆에 버전을 쓸 때 mybatis-spring-1.2.xsd 1.2라고 적으신 이유가 궁금합니다. mybatis-spring은 pom.xml에서 1.3.1 버전을 받은 것으로 기억합니다. 그래서 저는 처음에 1.3.1.xsd로 했더니 cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'resources'. 라면서 선언을 안 해줬다고 에러가 나옵니다.(실행도 안 됩니다.) 그런데 1.2.xsd로 하거나 버전을 적지 않으면 정상적으로 실행되네요. 다른 이유가 있을까요...??