【问题标题】:Spring Autowired with abstract inheritance errorSpring Autowired 带有抽象继承错误
【发布时间】:2015-06-14 09:11:57
【问题描述】:

考虑这种情况:

我有 A、B 和 C 类。

B 类扩展抽象类 A 和 C 类想使用 B 类作为 成员来执行操作。

@Service
public abstract class A{

}

@Component
public class B extends A{

}


@Service
Public class C {  
  private class B b;

  @Autowired
  public C(Class B b){  // constructor
    this.b = b;
  }    

  private void setB(B b){
    this.b = b;
  }

  private B getB(){
    return b;
  }
}

当我尝试进行组件扫描时,tomcat 不会加载。 我已经成功地以这种方式为非继承对象注入 bean。

我收到的错误是监听开始错误:

2015 年 6 月 14 日下午 12:09:04 org.apache.catalina.core.StandardContext startInternal SEVERE: Error listenerStart Jun 14, 2015 12:09:04 PM org.apache.catalina.core.StandardContext startInternal SEVERE:上下文 [] 由于先前的错误,启动失败 2015 年 6 月 14 日 12:09:05 PM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks

感谢您的帮助。

【问题讨论】:

  • 你能发布完整的堆栈跟踪吗?
  • 我在代码中添加这一行时已经追踪到问题:HttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager();即使在添加自动装配时这段代码没有运行,我也会收到错误,没有自动装配它可以工作。我不得不承认有点奇怪。我无法在 tomcat 中找到与此相关的任何日志。
  • 顺便说一下,我将它添加到 A 类中的一个未使用的方法中。

标签: spring tomcat inheritance autowired


【解决方案1】:

有一个依赖问题,我可以通过在 WEB-INF/conf 中添加一个 logging.properties 文件来打印 tomcat 堆栈跟踪

使用这个值:

org.apache.catalina.core.ContainerBase.[Catalina].level = INFO org.apache.catalina.core.ContainerBase.[Catalina].handlers = java.util.logging.ConsoleHandler

【讨论】:

    猜你喜欢
    • 2013-07-01
    • 2012-04-25
    • 2013-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-16
    • 2013-12-15
    • 1970-01-01
    相关资源
    最近更新 更多