gpt4 book ai didi

java - 分离 Spring-WS 和 Spring-Webmvc

转载 作者:行者123 更新时间:2023-11-30 03:05:36 25 4
gpt4 key购买 nike

使用spring-ws创建基于SOAP的应用程序。但是如果我添加以下依赖项(从 spring-boot 教程 https://spring.io/guides/gs/producing-web-service/ 看到),

    <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

它还拉动spring-webmvc。如果我排除它,

        <exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</exclusion>
</exclusions>

我在这里遇到错误;

@Bean
public ServletRegistrationBean messageDispatcherServlet(ApplicationContext applicationContext) {
MessageDispatcherServlet servlet = new MessageDispatcherServlet();
//ERROR Here
//cannot find symbol
//symbol: method setApplicationContext(ApplicationContext)
//location: variable servlet of type MessageDispatcherServlet
servlet.setApplicationContext(applicationContext);
servlet.setTransformWsdlLocations(true);
return new ServletRegistrationBean(servlet, "/ws/*");
}

它们不是独立的模块吗?为什么我必须使用 spring-webmvc,而我只需要 spring-ws?

我在这里不明白什么?

最佳答案

spring-ws-core需求spring-webmvc ,您无法避免这一点,因为一些核心 Spring-WS 类是构建在 Spring-WebMVC 类(包括 MessageDispatcherServlet)之上的。

spring-ws-core POM 定义了对 spring-webmvc 的显式依赖

来自https://repo1.maven.org/maven2/org/springframework/ws/spring-ws-core/2.2.4.RELEASE/spring-ws-core-2.2.4.RELEASE.pom

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.0.9.RELEASE</version>
<scope>compile</scope>
</dependency>

在 Maven 中添加排除很少是一个好主意 - 有时您需要这样做,但您几乎是在说您认为您比打包程序更了解库依赖项,并且您可能不会。

至于错误消息,MessageDispatcherServlet继承自org.springframework.web.servlet.FrameworkServlet ,封装在spring-webmvc中。 setApplicationContext FrameworkServlet 上定义的方法,但仅在 Spring-WebMVC 4.x 版本中添加。

当您添加排除项时,看起来最终的结果是您最终得到的是旧版本的 spring-webmvc,来自之前的 setApplicationContext已添加到FrameworkServlet .

关于java - 分离 Spring-WS 和 Spring-Webmvc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34847898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com