我正在使用run-jetty-run插件运行Eclipse来启动我的J2EE Web应用程序。我的项目使用Spring,spring配置使用HttpInvokerProxy和属性占位符。
true
时,我收到Xerces的投诉,说它无法验证spring.xml的XSD(所以我猜Jetty的嵌入式不同版本的xerces与我的版本冲突)false
时,属性占位符不再起作用了(我尝试用直接值替换)Spring也无法将HttpInvokerProxy转换为正确的接口,就像缺少某些类一样方法#3在Tomcat中工作正常。所以我想这个jetty启动器有一些类加载配置我做错了?
答案 0 :(得分:1)
听起来你的应用程序正在使用“外部”类路径上的东西(我将其称为X)并将其传递给引用;这很好用,因为'external'在你的应用程序的父类加载器中。
然后'X'使用引用用spring做一些事情。但是,spring位于应用程序的类路径中,但X位于外部类路径上。因此,弹簧对X不可见,因此错误。
正如您所发现的,将spring放入外部类路径是一种有效的解决方法。如果spring同时位于外部和web-app类路径中,这也应该有效。
至于'X'是什么?最有可能的候选人将是公共记录,其历史悠久地与类加载器相关。您可能需要考虑使用slf4j实现(如Logback)并通过jcl-over-slf4j提供commons-logging接口
资源: