인프런 커뮤니티 질문&답변

박소현님의 프로필 이미지
박소현

작성한 질문수

3. 웹개발 코스 [Enterprise Architecture(EA) X 전자정부프레임워크]

제6강#0 아키텍처 및 데이터베이스와 데이터교환

제6강#0 질문입니다.

작성

·

208

0

main5페이지에 들어가면 계속 에러페이지가 나오네요..ㅠ db port,id,pw도 다 맞추고 코드도 다 확인해봤는데 어디서 문제인지 모르겠습니다.
2024-06-08 16:14:46,411 WARN [org.springframework.web.servlet.PageNotFound] No mapping for GET /Egov_WEB/egovSampleList.do

java.lang.IllegalArgumentException: Parameter Maps collection does not contain value for java.util.HashMap

at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:1063)

at org.apache.ibatis.session.Configuration.getParameterMap(Configuration.java:792)

at org.apache.ibatis.builder.MapperBuilderAssistant.getStatementParameterMap(MapperBuilderAssistant.java:368)

at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:291)

at org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:113)

at org.apache.ibatis.session.Configuration.lambda$buildAllStatements$2(Configuration.java:914)

at java.base/java.util.Collection.removeIf(Collection.java:544)

at org.apache.ibatis.session.Configuration.buildAllStatements(Configuration.java:913)

at org.apache.ibatis.session.Configuration.hasStatement(Configuration.java:890)

at org.apache.ibatis.session.Configuration.hasStatement(Configuration.java:885)

at org.apache.ibatis.binding.MapperMethod$SqlCommand.resolveMappedStatement(MapperMethod.java:257)

at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:227)

at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:53)

at org.apache.ibatis.binding.MapperProxy.lambda$cachedInvoker$0(MapperProxy.java:108)

at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705)

at org.apache.ibatis.util.MapUtil.computeIfAbsent(MapUtil.java:35)

at org.apache.ibatis.binding.MapperProxy.cachedInvoker(MapperProxy.java:95)

at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:86)

at com.sun.proxy.$Proxy35.selectMain(Unknown Source)

at egov.main.service.impl.MainServiceImpl.selectMain(MainServiceImpl.java:25)

at egov.main.web.MainController.main5(MainController.java:66)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:566)

at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)

at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)

at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)

at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)

at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)

at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)

at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)

at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)

at org.egovframe.rte.ptl.mvc.filter.HTMLTagFilter.doFilter(HTMLTagFilter.java:48)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)

at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)

at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:388)

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)

at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)

at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)

at java.base/java.lang.Thread.run(Thread.java:834)

 

답변 3

0

개발자Park님의 프로필 이미지
개발자Park
지식공유자

안녕하세요.개발자park입니다.

[원인]

오타

 

[해결방법]

로그내용 토대로 아래 오타를 변경하였습니다.

파일:context-datasource.xml(23번째 줄)

변경내용:org

변경 후: driverClassName" value="org.mariadb.jdbc.Driver"

오타를 찾기 어려워서

https://www.inflearn.com/course/lecture?courseSlug=%EC%9B%B9%EA%B0%9C%EB%B0%9C-%EC%BD%94%EC%8A%A4-ea-%EC%A0%84%EC%9E%90%EC%A0%95%EB%B6%80-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC&unitId=213763&tab=curriculum

스스로 해결방법에서 알려드린 프로그램을 사용했습니다.

보통 해당 설정소스코드는 복사 붙여넣기를 주로하기에 너무 크게 걱정안하셔도 되겠습니다.

관련 강의:https://www.inflearn.com/course/lecture?courseSlug=%EC%9B%B9%EA%B0%9C%EB%B0%9C-%EC%BD%94%EC%8A%A4-ea-%EC%A0%84%EC%9E%90%EC%A0%95%EB%B6%80-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC&unitId=155004&tab=script

6강 39:40~41:08

 

해당 문제가 확실하며 해결이 안된다면 실행파일을 갱신해주세요.

https://www.inflearn.com/questions/1282198/%EC%98%A4%EB%A5%98-%ED%95%B4%EA%B2%B0%EC%9D%B4-%EC%95%88%EB%90%A9%EB%8B%88%EB%8B%A4%E3%85%A0

감사합니다.

 

0

개발자Park님의 프로필 이미지
개발자Park
지식공유자

안녕하세요.개발자park입니다.

로그만 봤을 때는 데이터베이스에서 값을 못 가져오는 것으로 보입니다.

[이유]

java.lang.IllegalArgumentException: Parameter Maps collection does not contain value for java.util.HashMap

at egov.main.web.MainController.main5(MainController.java:66)

[해결방법]

  1. 6강의 38분:08초부터~38분:13초까지 올바르게 작성되었는지 확인해주세요.

  2. 6강의38분에 나오는 쿼리를 데이터베이스에서 직접 실행해봅니다.->user정보가 데이터베이스에서도 올바르게 조회되는지 확인이 필요해 보입니다.

  3. 기존 답변처럼 Tomcat의 임시 실행파일을 제거해봅니다.

    https://www.inflearn.com/questions/1282198/%EC%98%A4%EB%A5%98-%ED%95%B4%EA%B2%B0%EC%9D%B4-%EC%95%88%EB%90%A9%EB%8B%88%EB%8B%A4%E3%85%A0

해결 안되시면 다시 질문주셔도 됩니다.

감사합니다.

 

박소현님의 프로필 이미지
박소현
질문자

MainMapper.xml도 동일하고 컨트롤러 코드도 이상없습니다. 쿼리도 실행하면 정상적으로 조회됩니다. 클린하고 재빌드도 해봤는데 계속 오류가 납니다ㅠ

개발자Park님의 프로필 이미지
개발자Park
지식공유자

해결이 안되셨다면 fallingsstar@naver.com로 파일을 첨부해서 보내주시면

확인해보겠습니다.

박소현님의 프로필 이미지
박소현
질문자

감사합니다! 메일드렸습니다.

0

안녕하세요, 인프런 AI 인턴입니다.

박소현님의 질문과 유사한 문제를 해결한 기존 답변이 있어 안내드립니다. 문제의 주요 원인은 요청된 페이지 /Egov_WEB/egovSampleList.do에 대한 매핑 정보 부재 및 MyBatis 설정 시, 정의되어 있지 않은 ParameterMap 관련 오류로 보입니다.

  • 결론적으로, 이러한 유형의 문제는 대부분 프로젝트의 설정 파일에서 올바른 매핑 정보가 제대로 설정되어 있지 않거나, MyBatis의 매퍼 파일에서 사용되는 SQL 문이나 파라미터에 문제가 있는 경우 발생합니다.

해결 방안:

  1. 매핑 정보 검토: @RequestMapping 어노테이션을 사용하여 처리하는 컨트롤러 또는 XML 설정에서 해당 URL에 대한 처리 방법이 정확히 매핑되어 있는지 확인해 주세요. 매핑 정보가 없거나 오탈자가 있는 경우 정상 작동하지 않습니다.
  2. MyBatis 설정 검토: 매퍼 파일에서 ParameterMap의 사용 형태가 올바른지 확인하세요. 호출하는 SQL 문과 매퍼 인터페이스의 파라미터 타입이 맞지 않는 경우 IllegalArgumentException이 발생할 수 있습니다.

유사한 답변 링크:

추가 도움이 필요한 경우:

  • 해결 방안을 시도해보셨음에도 불구하고 문제가 지속되는 경우, 프로젝트의 설정 파일이나 MyBatis 매퍼 파일의 일부를 함께 제공해주시면 더욱 정확한 진단이 가능합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

박소현님의 프로필 이미지
박소현

작성한 질문수

질문하기