Tomcat과 Struts를 연동하던 중 Catalina log에 다음과 같이 "Error filterStart"라는 오류가 난다면
stdout.log의 Error Message를 먼저 확인해 보아야할 것이다.
분명 Load할 Class를 정상적으로 Load하지 못했기 때문이다.
Googling을 해 보면 Tomcat과 Struts의 Version 문제라거나 필수 Library의 문제라고도 하지만 그리 명확한 답변은 못 된다.
오류 Message가 아래와 같다면 적어도 그렇지 않다.
이 오류의 주요 원인은 'stdout.log'에서 보듯이 weblogic Library가 Load 되었기 때문이다.
weblogic Library가 Load되면서 XML 관련 Class의 참조 Path가 바뀐 것이 주요 원인이다.
이 문제의 해결 방법은 두 가지가 있다.
만약 Project에서 weblogic을 사용하지 않는다면 이를(Load된 weblogic.jar File을) 삭제하면 될 것이고,
사용한다면 www.apache.org에서(http://www.apache.org/dyn/closer.cgi/xml/xalan-j) 'xalan'을 Download해
'xalan.jar'과 'serializer.jar'를 Project Library path에 복사해 주면 된다.
아마 이 글을 보고 있는 개발자라면 문제의 원인을 찾거나 해결할 방법을 찾느라 많이 고심했으리라 미루어 짐작된다. 이 글을 쓰고 있는 필자 또한 그러했기 때문에..
모쪼록 이 글을 통해 기쁨이 함께하길 바라며 이 글을 올린다.
- Canalina log.
2008. 12. 29 오후 11:50:32 org.apache.catalina.core.StandardHost start
정보: XML validation disabled
2008. 12. 29 오후 11:50:32 org.apache.catalina.core.StandardContext start
심각: Error filterStart
- stdout log
심각: Exception starting filter struts2java.lang.NoClassDefFoundError: org/apache/xalan/processor/TransformerFactoryImplat weblogic.xml.jaxp.RegistryTransformerFactory.<init>(RegistryTransformerFactory.java:62)at weblogic.xml.jaxp.RegistrySAXTransformerFactory.<init>(RegistrySAXTransformerFactory.java:12)at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)at java.lang.reflect.Constructor.newInstance(Unknown Source)at java.lang.Class.newInstance0(Unknown Source)at java.lang.Class.newInstance(Unknown Source)at javax.xml.transform.FactoryFinder.newInstance(Unknown Source)at javax.xml.transform.FactoryFinder.findJarServiceProvider(Unknown Source)at javax.xml.transform.FactoryFinder.find(Unknown Source)at javax.xml.transform.TransformerFactory.newInstance(Unknown Source)at com.opensymphony.xwork2.util.DomHelper$DOMBuilder.<clinit>(DomHelper.java:167)at com.opensymphony.xwork2.util.DomHelper.parse(DomHelper.java:115)at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(XmlConfigurationProvider.java:830)at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadDocuments(XmlConfigurationProvider.java:131)at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.init(XmlConfigurationProvider.java:100)at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:130)at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:52)at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:395)at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:452)at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:205)at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:221)at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:302)at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:78)at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3635)at org.apache.catalina.core.StandardContext.start(StandardContext.java:4222)at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)at org.apache.catalina.core.StandardService.start(StandardService.java:448)at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)at org.apache.catalina.startup.Catalina.start(Catalina.java:552)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:295)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
댓글 없음:
댓글 쓰기