记录一下这个新的内容:整合两个项目过程中需要注意的问题(仅仅限于我这些小内容啦~)
有两个工程,一个是对外发布webservice的名为userservice的工程,另一个是以前做过的一个普通工程,名为userope。
要求将userope工程的功能整合到userservice工程中,其中,两个工程用的数据库一样,而且都用了hibernate;userope用了dwr、struts2、fitter。
两个整到一起,肯定有些重复的,有些冲突的,比如说jar包。在整合过程中,遇到两个比较典型的问题,两个问题都导致服务器没有办法启动,记录下来:
一、struts2:严重: Exception starting filter struts2
具体错误是:
- 严重:Exceptionstartingfilterstruts2
- Unabletoloadbean:type:class:com.opensymphony.xwork2.ObjectFactory-bean-jar:file:/C:/Tomcat%206.0/webapps/userservice/WEB-INF/lib/struts2-core-2.1.8.1.jar!/struts-default.xml:29:72
- atcom.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:208)
- atorg.apache.struts2.config.StrutsXmlConfigurationProvider.register(StrutsXmlConfigurationProvider.java:101)
- atcom.opensymphony.xwork2.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:131)
- atcom.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:52)
- atorg.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:395)
- atorg.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:452)
- atorg.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:205)
- atorg.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
- atorg.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
- atorg.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
- atorg.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3838)
- atorg.apache.catalina.core.StandardContext.start(StandardContext.java:4488)
- atorg.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
- atorg.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
- atorg.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
- atorg.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1041)
- atorg.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:964)
- atorg.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
- atorg.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
- atorg.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
- atorg.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
- atorg.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
- atorg.apache.catalina.core.StandardHost.start(StandardHost.java:722)
- atorg.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
- atorg.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
- atorg.apache.catalina.core.StandardService.start(StandardService.java:516)
- atorg.apache.catalina.core.StandardServer.start(StandardServer.java:710)
- atorg.apache.catalina.startup.Catalina.start(Catalina.java:593)
- atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)
- atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
- atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
- atjava.lang.reflect.Method.invoke(Method.java:597)
- atorg.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
- atorg.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
- Causedby:Beantypeclasscom.opensymphony.xwork2.ObjectFactorywiththenamexworkhasalreadybeenloadedbybean-jar:file:/C:/Tomcat%206.0/webapps/userservice/WEB-INF/lib/struts2-core-2.0.14.jar!/struts-default.xml:30:72-bean-jar:file:/C:/Tomcat%206.0/webapps/userservice/WEB-INF/lib/struts2-core-2.1.8.1.jar!/struts-default.xml:29:72
- atcom.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:193)
- ...33more
- 2011-2-2316:58:10org.apache.catalina.core.StandardContextstart
- 严重:ErrorfilterStart
- 2011-2-2316:58:10org.apache.catalina.core.StandardContextstart
- 严重:Context[/userservice]startupfailedduetopreviouserrors
- 2011-2-2316:58:10org.apache.catalina.loader.WebappClassLoaderclearReferencesJdbc
- 严重:AwebapplicationregisteredtheJBDCdriver[com.mysql.jdbc.Driver]butfailedtounregisteritwhenthewebapplicationwasstopped.Topreventamemoryleak,theJDBCDriverhasbeenforciblyunregistered.
- 2011-2-2316:58:10org.apache.catalina.loader.WebappClassLoaderclearThreadLocalMap
- 严重:AwebapplicationcreatedaThreadLocalwithkeyoftype[null](value[com.sun.faces.config.ConfigureListener$1@33aa44])andavalueoftype[null](value[null])butfailedtoremoveitwhenthewebapplicationwasstopped.Topreventamemoryleak,theThreadLocalhasbeenforciblyremoved.
仔细一检查,jar有冲突,lib里面有两个,一个是struts2-core-2.1.8.1.jar,一个是struts2-core-2.0.14.jar。
解决办法肯定是将其中一个删除,但是,删除哪个取决于jar包都是哪些。我的工程是要删除struts2-core-2.1.8.1.jar。
二、The package location package is already been used by another package at location package
这个错误的原因是,一个jar包用了两次,我的工程整合的时候错误在于:一次将struts2 jar包复制到了lib下,又一次在myeclipse里面又一次导入了struts2 jar包,同样,删除其中一个就行了。
最后,想提醒一下的是:整合后注意链接是否改好了。