JAX-WS & Spring framework

publikováno: 20.8.2013

Jak integrovat webovou službu naprogramovanou pomocí JAX-WS se Springem?

/WEB-INF/applicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:ws="http://jax-ws.dev.java.net/spring/core"
    xmlns:wss="http://jax-ws.dev.java.net/spring/servlet" 
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://jax-ws.dev.java.net/spring/servlet http://jax-ws.java.net/spring/servlet.xsd
        http://jax-ws.dev.java.net/spring/core http://jax-ws.java.net/spring/core.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">

    <context:component-scan base-package="cz.java.skoleni" />

    <wss:binding url="/testws">
        <wss:service>
            <ws:service bean="#testWs" />
        </wss:service>
    </wss:binding>

</beans>

 

/WEB-INF/web.xml:

    <!-- this is for Spring -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!-- these are for JAX-WS -->
    <servlet>
        <servlet-name>jaxws-servlet</servlet-name>
        <servlet-class>com.sun.xml.ws.transport.http.servlet.WSSpringServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>jaxws-servlet</servlet-name>
        <url-pattern>/testws</url-pattern>
    </servlet-mapping>

 

cz.java.skoleni.ws.TestWs.java:

package cz.java.skoleni.ws;

import javax.jws.WebMethod;
import javax.jws.WebService;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@WebService
@Service
public class TestWs {

    // Autowired funguje jako obvykle, MyService je trida s anotaci @Service
    @Autowired
    private MyService myService;

    @WebMethod
    public String sayHello() {
        return myService.hello();
    }

}

 

  • Výsledná webová služba je zde: http://localhost:8080/nazev-aplikace/testws
  • WSDL je zde: http://localhost:8080/nazev-aplikace/testws?wsdl

Předchozí:
Spring Framework 3.2.4
Následující:
IntelliJ Idea zdarma
Reference

Velmi se mi líbila přátelská a neformální atmosféra a viditelné nadšení a zapojení přednášejícího do problematiky a tudíž skutečně zajímavé příklady z praxe a možnost zeptat se prakticky na jakoukoliv

Ondřej

Školení se mi moc líbilo, použití novinek v javě na konkrétních případech použití a vždy srozumitelně vysvětleno. Školitel má převyšující kvalifikaci a dokáže informace správnou formou předávat dál. Moc se

Robin

Pro mě jako správce aplikace, která běží na Tomcat byla velmi přínosná část architektury a monitoringu. Tato část byla vysvětlena velmi dobře i s názornými ukázkami. Byly předvedeny nástroje

Marek


Novinky

26.9.2017: RebelLabs Developer Productivity Report 2017
Další rok, další RebelLabs report :-)

14.9.2017: Java release cycle zrychluje & Java Flight Recorder zdarma
Dlouhé mnohaleté prodlevy mezi jednotlivými major releasy v Javě končí!

14.9.2017: Java EE se stěhuje do nadace Eclipse Foundation
Co to znamená?