本文小编为大家详细介绍“Jspxcms启动报错The object cannot be set twice怎么办”,内容详细,步骤清晰,细节处理妥当,希望这篇“Jspxcms启动报错The object cannot be set twice怎么办”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
如果在启动或访问的时候,出现以下报错信息,是因为Tomcat里的应用启动了两次。
com.jspxcms.common.fulltext.LuceneException: Error during searching.; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'searcherManager' defined in class path resource [custom.xml]: Cannot resolve reference to bean 'indexWriter' while setting bean property 'indexWriter';nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'indexWriter': FactoryBean threw exception on object creation;nested exception is org.apache.lucene.util.SetOnce$AlreadySetException: The object cannot be set twice!
导致Tomcat应用启动两次的原因通常是因为修改了tomcat的server.xml里的host、context配置,比如程序放在tomcat/webapps目录下,然后在server.xml里再次配置context,就会出现这种情况。因为在tomcat/webapps里的应用本身就会启动,然后tomcat就检测到server.xml里配置的context,所以会再次启动一次。如:
<Host ...> <Context path="/" docBase="D:/tomcat/webapps/ROOT" /></Host>
或者
<Host ...> <Context path="/" docBase="D:/tomcat/webapps/jspxcms" reloadable="true" /></Host>
正确的做法是不要修改tomcat的server.xml配置文件中的Host、Context配置,直接将程序作为ROOT文件夹,放在tomcat/webapps目录下。
读到这里,这篇“Jspxcms启动报错The object cannot be set twice怎么办”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。