본문 바로가기
GD's IT Lectures : 기초부터 시리즈/자바(JAVA) 기초부터 ~

[자바(JAVA)] 자바와 웹 서비스

by GDNGY 2023. 4. 30.

43. 자바와 웹 서비스

43.1. 웹 서비스 개요

웹 서비스는 네트워크 상에서 서로 다른 시스템 간에 상호 작용을 가능하게 하는 기술입니다. 웹 서비스는 플랫폼과 프로그래밍 언어에 독립적이며, 일반적으로 XML 또는 JSON과 같은 데이터 형식을 사용하여 통신합니다. 웹 서비스는 주로 SOAP(Simple Object Access Protocol)과 REST(REpresentational State Transfer)라는 두 가지 방식으로 구현됩니다.

 

43.2. SOAP 웹 서비스

SOAP는 XML 기반의 프로토콜로, 웹 서비스를 구현하기 위한 표준입니다. SOAP 웹 서비스는 WSDL(Web Services Description Language) 파일을 사용하여 서비스의 인터페이스를 정의합니다. 자바에서는 JAX-WS(Java API for XML Web Services)를 사용하여 SOAP 웹 서비스를 구현할 수 있습니다.

 

예시: 간단한 SOAP 웹 서비스

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

 

43.3. RESTful 웹 서비스

RESTful 웹 서비스는 웹의 기본 아키텍처 원칙에 기반하여 구현되는 웹 서비스입니다. RESTful 웹 서비스는 URI와 HTTP 메서드를 사용하여 자원에 접근하며, JSON, XML, HTML 등 다양한 형식으로 데이터를 주고받을 수 있습니다. 자바에서는 JAX-RS(Java API for RESTful Web Services)를 사용하여 RESTful 웹 서비스를 구현할 수 있습니다.

 

예시: 간단한 RESTful 웹 서비스

@Path("/hello")
public class HelloWorldResource {
    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String sayHello(@QueryParam("name") String name) {
        return "Hello, " + name + "!";
    }
}

 

43.4. 자바와 웹 서비스 클라이언트 구현

웹 서비스 클라이언트는 웹 서비스에 요청을 보내고 응답을 처리하는 역할을 합니다. 자바에서는 다양한 라이브러리를 사용하여 웹 서비스 클라이언트를 구현할 수 있습니다.

 

SOAP 웹 서비스 클라이언트 예시:

import javax.xml.ws.Service;
import java.net.URL;

public class HelloWorldClient {
    public static void main(String[] args) throws Exception {
        URL wsdlUrl = new URL("http://localhost:8080/HelloWorld?wsdl");
        QName serviceName = new QName("http://example.com/", "HelloWorldService");
        QName portName = new QName("http://example.com/", "HelloWorldPort");

        Service service = Service.create(wsdlUrl, serviceName);
        HelloWorld helloWorld= service.getPort(portName, HelloWorld.class);
        System.out.println(helloWorld.sayHello("John"));
    }
}

 

RESTful 웹 서비스 클라이언트 예시:

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.WebTarget;

public class HelloWorldClient {
    public static void main(String[] args) {
        Client client = ClientBuilder.newClient();
        WebTarget target = client.target("http://localhost:8080/hello?name=John");
        String response = target.request().get(String.class);
        System.out.println(response);
        client.close();
    }
}

 

이 강좌에서는 웹 서비스 개요와 SOAP, RESTful 웹 서비스에 대해 알아보았습니다. 또한, 자바를 사용하여 웹 서비스 클라이언트를 구현하는 방법에 대해서도 설명했습니다. 이를 통해 자바에서 웹 서비스를 구현하고 사용하는 방법에 대한 이해를 기르실 수 있으시길 바랍니다.

반응형

댓글