我有一个java 8 spring 5项目/ spring ws 3.它在tomcat 8中运行。它已经从旧版本的spring中进行了镜像,并使用了webservices的xml配置。当我启动应用程序时,我收到以下错误
错误:[May-04 15:03:25,263] web.context.ContextLoader - 上下文初始化失败 org.springframework.beans.factory.BeanCreationException:创建名为'org.springframework.ws.soap.addressing.server.AnnotationActionEndpointMapping#0'的bean时出错:bean的实例化失败;嵌套异常是org.springframework.beans.BeanInstantiationException:无法实例化[org.springframework.ws.soap.addressing.server.AnnotationActionEndpointMapping]:构造函数抛出异常;嵌套异常是java.lang.ExceptionInInitializerError
这个bean是由Spring创建的,并不是我的应用程序特别调用的。我在这里检查了代码
并查看了所有被调用的构造函数,但仍然无法弄清楚可能出现的问题。谁有人见过这个?或者知道我可以看到什么来追踪错误?
由于
编辑:应该添加最后的例外
引起:java.lang.ExceptionInInitializerError 在org.springframework.xml.xpath.XPathExpressionFactory.createXPathExpression(XPathExpressionFactory.java:73) at org.springframework.ws.soap.addressing.version.AbstractAddressingVersion.createNormalizedExpression(AbstractAddressingVersion.java:116) 在org.springframework.ws.soap.addressing.version.AbstractAddressingVersion。(AbstractAddressingVersion.java:88) 在org.springframework.ws.soap.addressing.version.Addressing200408。(Addressing200408.java:36) 在org.springframework.ws.soap.addressing.server.AbstractAddressingEndpointMapping.initDefaultStrategies(AbstractAddressingEndpointMapping.java:107) 在org.springframework.ws.soap.addressing.server.AbstractAddressingEndpointMapping。(AbstractAddressingEndpointMapping.java:98) 在org.springframework.ws.soap.addressing.server.AbstractActionEndpointMapping。(AbstractActionEndpointMapping.java:38) 在org.springframework.ws.soap.addressing.server.AbstractActionMethodEndpointMapping。(AbstractActionMethodEndpointMapping.java:34) 在org.springframework.ws.soap.addressing.server.AnnotationActionEndpointMapping。(AnnotationActionEndpointMapping.java:60) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在java.lang.reflect.Constructor.newInstance(Constructor.java:408)
编辑2: 运行的最后一行代码是 org.springframework.xml.xpath.XPathExpressionFactory.java:36
这个电话 带有以下数据的org.springframework.xml.xpath.Jaxp13XPathExpressionFactory.createXPathExpression()
expression = normalize-space(wsa:To) namespaces = [“wsa” - > “http://schemas.xmlsoap.org/ws/2004/08/addressing”]
我在Jaxp13XPathExpressionFactory.createXPathExpression()中有一个断点,但它永远不会被击中。困惑为什么会这样,它说它找不到类,但是类与调用它的类在同一个包中。
编辑3。 它确实找到了类,intellij中的断点并没有那么好用。该错误似乎是由
引起的jar:file:... / saxon9he-9.2.1.5.jar!/META-INF/services/javax.xml.xpath.XPathFactory:2:非法配置文件语法
答案 0 :(得分:0)
最后简单回答。是一个古老的maven依赖导致了这个问题。我将saxon9和v9.2.1.5升级到了Saxon-HE v9.8.0-11,错误不再发生,我的应用程序启动没有问题。