在做项目的时候,项目启动报了以下的错误
Caught Exception while registering Interceptor class org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor - interceptor - jar:file:/D:/Program%20Files/GlassFish-Tools-Bundle-For-Eclipse-1.0.1/glassfishv3-prelude/glassfish/domains/domain1/eclipseApps/SymfoAppliance/WEB-INF/lib/struts2-core-2.3.4.jar!/struts-default.xml:158:111 at org.apache.struts2.impl.StrutsObjectFactory.buildInterceptor(StrutsObjectFactory.java:77) at com.opensymphony.xwork2.config.providers.InterceptorBuilder.constructInterceptorReference(InterceptorBuilder.java:70) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.lookupInterceptorReference(XmlConfigurationProvider.java:1043) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptorStack(XmlConfigurationProvider.java:860) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptorStacks(XmlConfigurationProvider.java:873) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptors(XmlConfigurationProvider.java:896) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:476) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:286) at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:112) at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:234) at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66) at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:390) at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:437) at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74) at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:262) at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:375) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:119) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4497) at org.apache.catalina.core.StandardContext.start(StandardContext.java:5343) at com.sun.enterprise.web.WebModule.start(WebModule.java:456) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:922) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:906) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:696) at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2205) at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1890) at com.sun.enterprise.web.WebApplication.start(WebApplication.java:85) at com.sun.enterprise.v3.server.ApplicationLifecycle.start(ApplicationLifecycle.java:560) at com.sun.enterprise.v3.server.ApplicationLifecycle.start(ApplicationLifecycle.java:547) at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:189) at com.sun.enterprise.v3.server.ApplicationLoaderService.processApplication(ApplicationLoaderService.java:260) at com.sun.enterprise.v3.server.ApplicationLoaderService.postConstruct(ApplicationLoaderService.java:97) at com.sun.enterprise.v3.server.ApplicationLoaderInjector.postConstruct(ApplicationLoaderInjector.java:61) at com.sun.hk2.component.AbstractWombImpl.inject(AbstractWombImpl.java:150) at com.sun.hk2.component.ConstructorWomb$1.run(ConstructorWomb.java:90) at java.security.AccessController.doPrivileged(Native Method) at com.sun.hk2.component.ConstructorWomb.initialize(ConstructorWomb.java:87) at com.sun.hk2.component.AbstractWombImpl.get(AbstractWombImpl.java:75) at com.sun.hk2.component.SingletonInhabitant.get(SingletonInhabitant.java:58) at com.sun.hk2.component.LazyInhabitant.get(LazyInhabitant.java:107) at com.sun.hk2.component.AbstractInhabitantImpl.get(AbstractInhabitantImpl.java:60) at com.sun.enterprise.v3.server.AppServerStartup.run(AppServerStartup.java:203) at com.sun.enterprise.v3.server.AppServerStartup$1.run(AppServerStartup.java:116) 。。。。。。
从错误消息可以推断出原因无非两种:
1.项目中导入的jar包有问题,存在冲突。
2.项目中缺少jar包。
从实际情况出发,我觉得问题应该出在第一点。通过排除法,发现是gnujaxp.jar与struts2中的xwork核心包冲突,删除这个jar包就没有以上错误。
gnujaxp.jar是jfreechart中的jar包,jfree.org论坛里的说法:当使用JRE1.3.1并且要使用org.jfree.data.xml.*时才需要这个jar。
因此本次项目中不需要使用。删掉即可。而且,gnujaxp.jar与众多框架存在冲突,项目中不到迫不得已不应导入此包。