최근 스트럿츠2의 보안성 이슈가 문제가 되어
2.3.15 버전 이하에서 돌리는 모든 스트럿츠2는 2.3.15.1 이상을 설치할 것을 권하고 있다.
현재(2013.7.31)는 아직 2.3.15.1 뿐이라 이 이상으로는 올리지도 못한다..;;
그래서 현재 스트럿츠2가 적용이 되어 돌리고 있던 프로그램을 2.3.15.1로 맞추어 올렸는데...
톰캣에서 돌렸더니 시작시점에
.......
DEBUG [main] -Loaded [BUILDER] {PackageConfig Name:json-default namespace: parents:[{PackageConfig Name:struts-default namespace: parents:[]}]}
DEBUG [main] -The result type [org.apache.struts2.json.JSONResult] doesn't have a default param [DEFAULT_PARAM] defined!
java.lang.NoSuchFieldException: DEFAULT_PARAM
at java.lang.Class.getField(Unknown Source)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addResultTypes(XmlConfigurationProvider.java:578)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:530)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:292)
at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:112)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:250)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:446)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:490)
at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4071)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4725)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
DEBUG [main] -Found following implementations of FileManager interface: [system, jboss]
DEBUG [main] -No user defined FileManager, looking up for internal implementations!
DEBUG [main] -Cannot load [org.jboss.vfs.VirtualFile] class, not a JBoss 7!
.......
와 같이 에러가 나는것이다~!
이 문제좀 해결해보겠다고 이리저리 사이트를 뒤졌지만.. 결국은 해결 못하고..
원인은 알아냈다.
원인은 간단하다.
DEFAULT_PARAM이라는 멤버변수가 org.apache.struts2.json.JSONResult 클래스에 없기 때문이다.
이 클래스는 struts2-json-plugin-2.3.15.1.jar 파일에서 제공하고 있는데..
이걸 실제로 열어보니 없는 것이다. jad로도 봐도 없고.. 소스를 직접 봐도 없었다;;
그래서 해결하려고 소스도 직접 받아서 jar로 묶을 생각까지 했었다.
하지만, 이것은 DEBUG 로그일 뿐. 엄밀하게는 ERROR 로그도 아니다.
결국, 그냥 두기로 했다.. 오픈 프로젝트 소스 커밋하는 곳을 보니.. 이 문제는 해결을 했다. 하지만 릴리즈를 안했을 뿐이다. 그냥 다음 버전 릴리즈때 적용해서 버전발행하면 되겠다.ㅎ
이 메세지를 보는 사람이 있다면, 쿨~ 하게 넘어가주시길.
'[Developer] > Java' 카테고리의 다른 글
STS나 eclipse 실행시 exit code=1 만났을 경우 해결방법 (2) | 2016.08.15 |
---|---|
이클립스에서 Dynamic Web Project의 Default context 설정하기 (0) | 2013.07.31 |
String의 replaceAll() 메소드 구현 (0) | 2012.11.26 |
Eclipse에서 SVN Branch 따보기 (0) | 2012.07.02 |
메소드의 명명법에 대한 힌트 (0) | 2012.05.02 |
댓글