Spring WS DefaultWsdl11Definition错误

Wae*_*ada 7 java spring web-services spring-ws

我正在使用Spring WS并声明一个DefaultWsdl11Definition bean来动态生成WSDL文件.

但是,当我启动webserver(tomcat)时,我得到一个bean实例错误,原因是:

    Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: javax/wsdl/extensions/ExtensibilityElement
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:141)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:74)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:958)
    ... 45 more
Caused by: java.lang.NoClassDefFoundError: javax/wsdl/extensions/ExtensibilityElement
    at org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition.<init>(DefaultWsdl11Definition.java:56)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:126)
    ... 47 more
Caused by: java.lang.ClassNotFoundException: javax.wsdl.extensions.ExtensibilityElement
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1671)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516)
    ... 53 more
Run Code Online (Sandbox Code Playgroud)

SpringWS-Servlet.xml中的Bean

<bean id="beanWS" class="org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition">
        <property name="schema">
            <bean class="org.springframework.xml.xsd.SimpleXsdSchema">
                <property name="xsd" value="/WEB-INF/somexsd.xsd"/>
            </bean>
        </property>
        <property name="portTypeName" value="beanWS"/>
        <property name="locationUri"
                  value="http://localhost:8080/springws"/>
    </bean>
Run Code Online (Sandbox Code Playgroud)

任何想法可能是什么问题..

PS:Spring版本是3.0.5,Spring WS版本是2.0.0-M3

谢谢

ska*_*man 16

Spring-WS依赖于WSDL4J库,您似乎缺少它.


小智 6

我遇到了同样的错误。然后我意识到缺少 wsdl4j 依赖项。

<dependency>
    <groupId>wsdl4j</groupId>
    <artifactId>wsdl4j</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)