2016-09-08 7 views
2

私は、次のSOAP WebサービスとJavaでSpringBootアプリケーションを作りたい:Spring Boot Soap Webサービス(Java) - 最初にコードを作成しますか?

@WebService 
public class HelloWorld 
{ 
    @WebMethod 
    public String sayHello(String name) 
    { 
     return "Hello world, " + name; 
    } 
} 

私はWSDLを取得したい... 私はエンドポイントを作成するために持っているか、サービスをマッピングすると思いますか?どうやってやるの?

<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> 

<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> 

答えて

2

春ブート・スターター-WSと組織を追加します。春ブートコードをWEB-INFフォルダ内のファイルがあるため、それが動作することなく

。プロジェクトへのapache.cxf cxf-bundleの依存関係。

Webサービスを公開するための設定ファイルを作成します。そのような設定の例:

@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(パスは異なる場合があります)

関連する問題