首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Boot Soap Web-Service (Java) -代码优先?

Spring Boot Soap Web-Service (Java) -代码优先?
EN

Stack Overflow用户
提问于 2016-09-08 23:00:19
回答 1查看 3.9K关注 0票数 5

我想用下面的Soap Web服务用Java语言制作一个SpringBoot应用程序:

代码语言:javascript
复制
@WebService
public class HelloWorld
{
    @WebMethod
    public String sayHello(String name)
    {
        return "Hello world, " + name;
    }
}

我想要得到WSDL...我想我必须创建端点或映射服务?我该怎么做呢?

如果没有spring-boot,它就能正常工作,因为WEB-INF文件夹中的文件包含以下代码:

代码语言:javascript
复制
<endpoints xmlns='http://java.sun.com/xml/ns/jax-ws/ri/runtime' version='2.0'>
    <endpoint name='HelloWorld' implementation='web.service.soap.HelloWorld' url-pattern='/HelloWorld'/>
</endpoints>

代码语言:javascript
复制
<servlet>
        <servlet-name>jaxws-servlet</servlet-name>
        <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>jaxws-servlet</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
EN

回答 1

Stack Overflow用户

发布于 2016-09-09 19:07:36

将spring-boot-starter-ws和org.apache.cxf cxf-bundle依赖项添加到项目中。

并创建一个配置文件来公开您的web服务。这样的配置示例:

代码语言:javascript
复制
@Configuration
@EnableWs
public class WebServicesConfig {
    @Autowired
    private HelloWorld helloWorld; // your web service component

    @Bean
    public ServletRegistrationBean wsDispatcherServlet() {
        CXFServlet cxfServlet = new CXFServlet();
        return new ServletRegistrationBean(cxfServlet, "/services/*");
    }

    @Bean(name="cxf")
    public SpringBus springBus() {
        return new SpringBus();
    }

    @Bean
    public Endpoint helloWorldEndpoint() {
        EndpointImpl endpoint = new EndpointImpl(springBus(), helloWorld);
        endpoint.publish("helloWorld");
        return endpoint;
    }
}

访问wsdl:http://localhost:8080/services/helloWorld?wsdl (路径可能不同)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39394288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档