运行我的项目时,我得到了java.lang.StackOverflowerError?

运行我的项目时,我得到了java.lang.StackOverflowerError?,java,hibernate,maven,spring-mvc,solrj,Java,Hibernate,Maven,Spring Mvc,Solrj,我试图用maven实现Spring和postgres的solr搜索,但在运行应用程序时,我得到了404,但有一个例外 Exception processing loader WebappLoader[/solrjExample] background process java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.StackOverflowError 我真的不明白我的spring se

我试图用maven实现Spring和postgres的solr搜索,但在运行应用程序时,我得到了404,但有一个例外

Exception processing loader WebappLoader[/solrjExample] background process
java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.StackOverflowError
我真的不明白我的spring servlet有什么问题:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:beans=" http://www.springframework.org/schema/beans  "
    xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xmlns:solr="http://www.springframework.org/schema/data/solr"
    xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/mvc
   http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
   http://www.springframework.org/schema/beans     
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/context 
   http://www.springframework.org/schema/context/spring-context-3.0.xsd
   http://www.springframework.org/schema/data/solr 
   http://www.springframework.org/schema/data/solr/spring-solr.xsd">

    <context:component-scan base-package="org.tcs.com.controller" />
    <context:property-placeholder location="classpath:org/tcs/com/lak/resources/application.properties" />
    <mvc:annotation-driven />
    <bean id="jacksonMessageConverter"
        class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />
    <bean
        class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
        <property name="mediaTypes">
            <map>
                <entry key="html" value="text/html" />
                <entry key="json" value="application/json" />
            </map>
        </property>
        <property name="viewResolvers">
            <list>
                <bean
                    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
                    <!-- <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" 
                        /> -->
                    <property name="prefix" value="/WEB-INF/jsp/" />
                    <property name="suffix" value=".jsp" />
                </bean>
            </list>
        </property>
        <property name="defaultViews">
            <list>
                <bean
                    class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
                    <property name="prefixJson" value="true" />
                </bean>
            </list>
        </property>
    </bean>
    <!-- ##################################### SOLR ##################################### -->
    <!-- Configures HTTP Solr server -->
    <solr:solr-server id="solrServer" url="${solr.server.url}" />

    <!-- Configures Solr template -->
    <bean id="solrTemplate" class="org.springframework.data.solr.core.SolrTemplate">
        <constructor-arg index="0" ref="solrServer" />
    </bean>
<!-- ##################################### postgres ##################################### -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close" p:driverClassName="org.postgresql.Driver"
        p:url="jdbc:postgresql://localhost:5432/Prime" p:username="postgres"
        p:password="Password" /> 
        <!-- ##################################### Hibernate ##################################### -->
    <bean id="sessionfactory"
        class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="configLocation">
            <value>classpath:Hibernate.cfg.xml</value>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.cache.use_second_level_cache">false</prop>
            </props>
        </property>
    </bean> 
    <bean id="transactionManager"
        class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionfactory" />
    </bean>  
</beans>

类路径:Hibernate.cfg.xml
org.hibernate.dialogue.PostgreSqlDialogue
真的
假的
还有我的web.xml

<?xml version="1.0" encoding="UTF-8"?>

  <web-app id="WebApp_ID" version="2.4"
   xmlns="http://java.sun.com/xml/ns/j2ee" 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <display-name>solrjExample</display-name>
   <servlet>
      <servlet-name>solrjExample</servlet-name>
      <servlet-class>
         org.springframework.web.servlet.DispatcherServlet
      </servlet-class>
        <init-param>
       <param-name>contextConfigLocation</param-name>
         <param-value>WEB-INF/slorjExample-servlet.xml</param-value>
       </init-param>
      <load-on-startup>1</load-on-startup>
   </servlet>

   <servlet-mapping>
      <servlet-name>solrjExample</servlet-name>
      <url-pattern>/</url-pattern>
   </servlet-mapping>

</web-app>

索尔杰举例
索尔杰举例
org.springframework.web.servlet.DispatcherServlet
上下文配置位置
WEB-INF/slorjExample-servlet.xml
1.
索尔杰举例
/
我认为配置有问题,或者是因为我对solr还不熟悉。
谢谢你的帮助。

你说运行应用程序是什么意思?您是在运行某种搜索,还是在加载欢迎页面时? 在运行应用程序时,默认情况下是否有特定的页面可供访问? 您是否尝试在启动应用程序时运行的代码段中添加一些调试点?
或者,您的意思是在部署应用程序后启动服务器时出现此错误?

通常,这种错误是由于递归无限循环造成的。您是否在服务器启动时执行了一些自己的代码?

此错误背后的基本原理是使用SolrjSpring data solr这基本上是因为在抛出堆栈溢出错误之前,这些API中使用的记录器会递归地相互调用,从而导致tomcat崩溃。因此,我从pom中删除了spring数据solr依赖项

The purpose of slf4j-jcl module is to delegate or redirect calls made to an SLF4J logger to jakarta commons logging (JCL). 

The purpose of the jcl-over-slf4j module is to redirect calls made to a JCL logger to SLF4J.

 If both slf4j-jcl.jar and jcl-over-slf4j.jar are present on the class path, then a StackOverflowError will inevitably occur immediately after the first invocation of an SLF4J or a JCL logger. 
链接中描述了该问题


试图找出是否有解决方法。

检查您的代码,可能存在无限循环的无限循环recursion@Jayant实际上,当我试着运行它自己时,它不会自己运行,在我做任何操作之前,我得到了这个错误…不,我没有在maven pom中实际执行任何自己的代码,我添加了solrj依赖项和solr core依赖项。。。你我知道有一些InfiniteLop,但无法识别,因为什么检查我的配置有什么问题吗?在运行时意味着当欢迎页面加载时,没有访问默认页面。。。没有正在运行的代码。。我只是在eclipse中运行我的应用程序,当我遇到404或无法显示带有此错误的页面错误,并且无法启动tomcat v7时。您应该注释一些配置,以确定哪个组合会导致服务器在启动时崩溃,然后可能在其中一个或两个上打开缺陷technologies@Gab我尝试删除solr core依赖项,但没有服务器崩溃,但出现以下错误。。。org.xml.sax.saxpasseeption:cvc复杂类型。2.4.c:匹配的通配符是严格的,但找不到元素“solr:solr server”的声明。