java Spring WS DefaultWsdl11Definition 错误

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/4431760/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-30 06:20:18  来源:igfitidea点击:

Spring WS DefaultWsdl11Definition Error

javaweb-servicesspringspring-ws

提问by Wael Awada

I am using Spring WS and declaring a DefaultWsdl11Definition bean to generate the WSDL Files on the fly.

我正在使用 Spring WS 并声明一个 DefaultWsdl11Definition bean 来动态生成 W​​SDL 文件。

However , When i start the webserver (tomcat) I get a bean instantiaion error due to :

但是,当我启动网络服务器 (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

Bean in SpringWS-Servlet.xml

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>

Any Idea what the problem might be ..

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

PS : Spring version is 3.0.5 , Spring WS Version is 2.0.0-M3

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

Thanks

谢谢

回答by skaffman

Spring-WS depends on the WSDL4Jlibrary, which you seem to be missing.

Spring-WS 依赖于您似乎缺少的WSDL4J库。

回答by Kumar Abhishek

In case if you upgrade your Spring-ws version you can use below pom.xml

如果你升级你的 Spring-ws 版本,你可以使用下面的 pom.xml

<properties>
    <spring.version>4.2.5.RELEASE</spring.version>
    <spring.ws.version>2.2.4.RELEASE</spring.ws.version>
    <log4j.version>1.2.16</log4j.version>
    <apache.ws.version>1.6.19</apache.ws.version>
    <context.path>spring-server</context.path>
</properties>
<dependencies>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${log4j.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.6</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aspects</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>commons-collections</groupId>
        <artifactId>commons-collections</artifactId>
        <version>3.2</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-oxm</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.ws</groupId>
        <artifactId>spring-ws-core</artifactId>
        <version>${spring.ws.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.ws</groupId>
        <artifactId>spring-ws-security</artifactId>
        <version>${spring.ws.version}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.ws</groupId>
        <artifactId>spring-xml</artifactId>
        <version>${spring.ws.version}</version>
    </dependency>

    <dependency>
        <groupId>org.apache.ws.xmlschema</groupId>
        <artifactId>xmlschema-core</artifactId>
        <version>2.2.1</version>
    </dependency>

    <dependency>
        <groupId>org.apache.ws.security</groupId>
        <artifactId>wss4j</artifactId>
        <version>${apache.ws.version}</version>
    </dependency>
    <dependency>
        <groupId>wsdl4j</groupId>
        <artifactId>wsdl4j</artifactId>
        <version>1.6.2</version>
    </dependency>
</dependencies>

回答by Dave

You need the WSDL library to be included. The POM for Spring WS Core 2.0.0-M1 includes this reference:

您需要包含 WSDL 库。Spring WS Core 2.0.0-M1 的 POM 包括以下参考:

http://mvnrepository.com/artifact/org.springframework.ws/spring-ws-core/2.0.0-M1

http://mvnrepository.com/artifact/org.springframework.ws/spring-ws-core/2.0.0-M1

回答by shashi ranjan

I got the same error. Then I realized that wsdl4j dependency was missing.

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

<dependency>
    <groupId>wsdl4j</groupId>
    <artifactId>wsdl4j</artifactId>
</dependency>