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

Skoleni bylo kazdopadne prinosne, i kdyz ve Springu uz chvilku delam, dodalo mi to kontext a hlubsi porozumeni. Libil se mi i prehled dalsich frameworku, jejich prakticke vyuziti a ze

Daniela

Se školením jsem byl naprosto spokojen. Výborný poměr teorie a praxe. Vypíchl bych i přístup školitele k probírané problematice, znalosti a zkušenosti. Je vidět, že Jirka je velký fanoušek Javy

Václav

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


Novinky

16.11.2017: Java 9 přednáška
Na JavaDays 2017 jsem měl přednášku na téma Java 9, o kterou bych se rád podělil

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čí!