[KSUG] 로컬에서 잘돌아가는것이 서버에 올리면 에러가 발생합니다.

3,010 views
Skip to first unread message

이정영

unread,
Mar 22, 2015, 9:56:57 AM3/22/15
to ks...@googlegroups.com
안녕하세요. 봄이 시작되었군요. 

회사에서 문제가 좀 발생하였는데. 이문제가 정말 골치 아픈 현상이라 어떻게 풀어가야 할지 난감한 상태 입니다. 

우선 현상은 로컬에서는 잘돌아가는것이 서버에 배포해서 돌리면 부분적으로 에러가 발생하고 있습니다. 팝업창 호출시나 ajax 로 호출시에 아래 에러가 발생하고 있습니다. 

org.springframework.web.bind.annotation.support.HandleMethodInvocationException: Failed to invoke handler method [public org.springframework.web.servlet.ModelAndView com.xxxx.xxx.support.popup.web.PopupController.popupUser (java.lang.String, java.lang.String, java.lang.String)]; nested exception is java.lang.illegalstateexception: no parameter name specified for argument of type [java.lang.String], and no parameter name information found in class file either.
at org.springframework.web.bind.annotation.support.HandleMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:181)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandleAdapter.invokeHandleMethod(AnnotationMethodHandlerAdapter.java:426)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)
at org.springframework.web.servlet.DispatcherServlet.doDispatch ( DispatcherServlet.java:790)
at org.springframework.web.servlet.dispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
at javax.servlet.http.HttpServlet.service(httpServlet.java:575)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at com.ibm.ws.cache.servlet.ServletWrapper.serviceProxied(ServletWrapper.java:307)
at com.ibm.ws.cache.servlet.CacheHook.handleFragment(CacheHook.java:562)
at com.ibm.ws.cache.servlet.cacheHook.handleServlet(CacheHook.java:255)
at com.ibm.ws.cache.servlet.Servlet.ServletWrapper.service(ServletWrapper.java:779)
at com.ibm.ws.cache.servlet.Servlet.ServletWrapper.service(ServletWrapper.java:478)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:178)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChanin.java:97)
at kr.co.weeds.wt.wal.servlet.LogRedirector.doFilter(LogRedirector.java:100)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
at com.ibm.ws.webcontainer.filter.WebAppFilterChanin.doFilter(WebAppFilterChain.java:91)
at com.xxxx.xxx.framework.xss.XSSFilter.doFilter(XssFilter.java:69)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)


서버는 WebSphere를 사용하고 있습니다. 이현상이 예를들어 권한 설정 화면에 들어가서 등록자 팝업창을 호출 하게 되면 나온다거나. 텍스트 입력후 ajax 사용자 추가시에 발생하고 있습니다. 도대체 왜 이런 현상이 나타날까요 ?  로컬에서 톰켓으로 돌리면 잘되는데 서버상에 배포 해서 돌리면 일부 화면에서 위와 같은 에러가 발생합니다. 

NoviceRambo초보람보

unread,
Mar 22, 2015, 10:15:37 AM3/22/15
to ks...@googlegroups.com
OKKY 에 있는 글 올려 봅니다.

해결책은 있는데 

이유는 더 살펴봐야겠네요.

http://okky.kr/article/193729

2015년 3월 22일 오후 10:56, 이정영 <leej...@gmail.com>님이 작성:

--
이 메일은 Google 그룹스 'Korea Spring User Group Q&A' 그룹에 가입한 분들에게 전송되는 메시지입니다.
이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 ksug+uns...@googlegroups.com에 이메일을 보내세요.
http://groups.google.com/group/ksug에서 이 그룹을 방문하세요.
웹에서 이 토론을 보려면 https://groups.google.com/d/msgid/ksug/CAMLPhp3%2BF_yb-FytS7de8OEHAN-XBo5V5AM4S%3DRUAgxXQz_eWg%40mail.gmail.com을(를) 방문하세요.
더 많은 옵션을 보려면 https://groups.google.com/d/optout을(를) 방문하세요.

이정영

unread,
Mar 22, 2015, 9:13:25 PM3/22/15
to ks...@googlegroups.com

답변 감사 드립니다
신기하게도 RequestParam으로 처리 하면 이번에는 로컬에서 404에러가 발생 하여 이번에는 더 불안해서 못 올리겠습니다 갑갑하네요 어디부터 잘못된걸까요

2015. 3. 22. 오후 11:15에 "NoviceRambo초보람보" <exper...@gmail.com>님이 작성:

YongHyuk Lee

unread,
Mar 22, 2015, 9:15:33 PM3/22/15
to ks...@googlegroups.com
... 그냥 파라미터 없어서 나는 에러 아닌가요.?

popupUser (java.lang.String, java.lang.String, java.lang.String)]

3개의 파라미터가 필요한데..
파라미터의 변수명과.. @RequestParam String aaa .. aaa가 같아야되고..
꼭 필수 파라미터가 아니라면.. @RequestParam(defaultValue="", required=false) String aaa  이런식으로 기본값을 선언해주면 됩니다.


2015년 3월 22일 오후 11:15, NoviceRambo초보람보 <exper...@gmail.com>님이 작성:

더 많은 옵션을 보려면 https://groups.google.com/d/optout을(를) 방문하세요.



--
-----------------------------------------------

이정영

unread,
Mar 24, 2015, 7:28:00 PM3/24/15
to ks...@googlegroups.com

감사합니다 로컬에서 되던 부분들 찾아서 전부 수정했더니 됩니다 감사드려요

2015. 3. 23. 오전 10:15에 "YongHyuk Lee" <unlogi...@gmail.com>님이 작성:

Sanghyuk Jung

unread,
Mar 24, 2015, 9:23:21 PM3/24/15
to ks...@googlegroups.com
아마 서버에 배포하는 빌드에서 compile옵션으로 디버깅 정보가 빼는걸로 되어 있지 않은지 확인해보는것이 좋을듯합니다.

Maven이라면 아래와 같은 식으로요 debug=false가 되어 있다면 위와 같은 현상이 발생합니다.

<plugins>
     <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-compiler-plugin</artifactId>
       <configuration>
         <source>1.6</source>
         <target>1.6</target>                   
         <debug>false</debug>
         <optimize>true</optimize>
         <encoding>utf-8</encoding>
       </configuration>
     </plugin>
</plugins>


Default는 debug=true이므로,  해당 라인을 삭제하시면 local과 서버에서 같은 결과가 나올것 같습니다.


자세한 내용은  http://gubok.tistory.com/382 에도 설명되어 있고, Spring의 메뉴얼에도 나와는 있습니다.

http://docs.spring.io/spring/docs/3.1.x/spring-framework-reference/html/mvc.html

Or if the URI template variable name matches the method argument name you can omit that detail. As long as your code is not compiled without debugging information, Spring MVC will match the method argument name to the URI template variable name:

@RequestParam과 @PathVariable 모두 같은 원리입니다.

작년에 KSUG 세미나에서도 이에 대해 공유드린적이 있습니다.

http://www.slideshare.net/benelog/ss-35627826



2015년 3월 25일 오전 8:27, 이정영 <leej...@gmail.com>님이 작성:

이정영

unread,
Mar 31, 2015, 10:02:57 PM3/31/15
to ks...@googlegroups.com

감사 합니다 덕분에 잘 해결 되었습니다
보내 주신 내용과 정확하게 일치 하였습니다  서버며 빌드툴 까지 다 똑같았습니다

2015. 3. 25. 오전 10:23에 "Sanghyuk Jung" <ben...@gmail.com>님이 작성:
Reply all
Reply to author
Forward
0 new messages