티스토리 뷰

728x90

WebService를 가장 잘 구현하고 있는 플렛폼은 자바이다. 현재 Java EE는 가장 최근 spec은 jakarta 10이며 Java WebService의 표준을 여기서 구성하고 있다.

 

현재 SOAP web service 개발을 위해 여전히 glassfish서버가 개발되고 있으며 glassfish 7 버전은 jakarta 10을 만족하고 있다.

 

개발 시 glassfish를 사용시 주의 할 점을 적어본다.

1. glassfish 4버전은 JDK1.7을 지원한다. 1.7만 쓰는 것이 좋다.

2. glassfish 5버전은 JDK8을 지원한다. 설명에는 최근 2022년 5.1버전은 11버전을 지원한다고 되어 있는데, 지원하지 않는다. 그냥 1.8을 사용해라 정신 건강에 좋다.

3. glassfish 6버전은 JDK11을 지원한다. 최근 2022년 6.2.5버전은 17버전을 지원하다고 하는데 지원하지 않는다. 그냥 11써라

4. glassfish서버는 현재 eclipse에서 archieve되어 Glassfish Tools가 설치되지 않는다. 웃긴 건 최근까지 glassfish서버는 업데이트 되고 있는데 plugin이 지원되지 않아서 eclipse에서 개발할 수가 없다. 편법이 있어서 개발 가능하다.

5. glassfish을 사용하려면 Payara Tools을 설치해야 한다. Payara는 glassfish엔진을 사용한 또 다른 web server이다. mysql과 mariadb를 생각하면 된다.

6. Payara서버는 어드민 툴의 UI가 화려하다. 멋지게 만들어져 있다. 

 

- 관리자 툴이 중요한 이유는 Web Service는 짜증나는 xml로 되어 있다. 즉 테스트 할려면 한 바닥을 써야 된다. 문제는 어떻게 써야할지 모른다는 점이다. 이 문제를 해결해주는 게 이 관리자 툴인데, 여기에는 테스트 기능이 같이 포함되어 있다. 

물론 soapUI같은 자동화된 클라이언트 툴이 존재하긴 한다. 취향이긴 하지만 기본적인 부분도 안 돌아가는 게 좀 그렇다.

 

7. Payara 서버의 문제점은 이 UI인데, Payara 5는 UI에 버그가 있다. 테마가 포함되어 있지 않아서 관리자 툴을 사용할 수가 없다. 자바스크립트 에러가 뜬다.

8, Payara 6는 UI의 문제는 해결되었다. 그래서 아주 아름다운 UI를 감상할 수 있다. 그런데, 테스트 툴이 실행되지 않는다. 관리자 툴에서 사용하는 Wsimport모듈에 버그가 있어서 테스트 툴에 진입 자체가 안된다.

9 glassfish 6에서도 문제가 발생하는 데, 결국 6버전용 서버는 쓰지 않는 게 좋다.

glassfish 6은 아래 같이 뜬다. 진짜 기본적인 것들 조차 안되어 있는 라이브러리이다. netbeans를 쓰라는 말이 많던데 그걸 쓰면 해결되지 모르겠다. 

 

 

결론: Web Service 지원에서 자바가 가장 평판이 좋지만 실제 조금만 테스트해도 엉망이라는 것을 바로 알 수 있다. 문서가 가 틀린 부분도 많고 기본적인 라이브러리를 테스트도 안하고 배포하고 사용 중이기도 하다. glassfish 6이나 payara 6은 테스트 툴만 안되지 기본적으로 테스트 xml 구문이 있으면 정상적으로 실행이 된다. 6버전의 서버를 사용하려면 soap UI를 설치하여 테스트할 수 밖에 없다. 그냥 편하게 사용하려면 glassfish 5를 사용하는 것이 좋다. 문제는 5, 6버전의 프로그램의 동작이 다르다는 점인데 특히 인터페이스를 구현할 때 @WebResut, @WebParam이 다르게 동작한다. 5버전에 문제점이 있어보인다.

 

혹시나 해서 적어보는데, 한 가지 많이 하는 실수 중 하나 엔드포인트에 신경을 안쓰는 경우인데, 대소문자를 가린다

 잘 알려져 있듯, wsdl의 service의 soap address가 endpoint인데 위를 보면 아래처럼 대소문자가 자바코드처럼 되어 있다. 하나라도 대소문자가 다르면 실행되지 않는다. http://bigme:8080/Glassmart/ProductCatalogService

 

 

728x90
댓글