본문 바로가기
슬기로운 자바 개발자 생활/스프링 및 자바웹 서비스

WSDL 클라이언트 구현 CXF2 자바웹서비스 데이터 받기

by 슬기로운 동네 형 2017. 9. 10.
반응형

두번째 : 웹 서비스 클라이언트 구현

서버로 부터 받은 WSDL파일을 이클립스에서 포팅시켜 자바통신소스를 만들어본다.
개념상으로는 IDL 같은 개념이긴한데... IDL 같은 경우는 proto 같은 파일로 서버, 클라이언트등의 소스를 만들지만 WSDL은 서버에서 만든 기준으로 클라이언트 소스가 생생된다.

만약 연계를 한다면 서버 코드 -> WSDL 나옴 -> 클라이언트 코드. 이런식으로 개발 순서가 진행된다

* 서버코드를 만드는 방법도 링크한다.

2017.09.10 - [슬기로운 자바 개발자 생활/스프링 및 자바웹 서비스] - (웹서비스 구현) 자바 웹서비스/Wsdl/CXF 심플 (예제)

(웹서비스 구현) 자바 웹서비스/Wsdl/CXF 심플 (예제)

옆에 나열한 개념들을 대충 구글링해서 찾아보면 수월하게 작업 할 수 있습니다. => SOA, 웹서비스, XML, wsdl * was(톰캣, 웹로직, 제우스)에서 제공하는 웹서비스관련 jar들과 충돌 즉. 자신의 프로젝

ecolumbus.tistory.com


[초심플]

1. 이클립스 스프링 프로젝트 기본 생성 (클라이언트 용 프로젝트)


2. 전 시간에 만든 웹서비스는 켜 놓는다.포트 8080 (클라이언트는 9999)


아래 세개의 포트 모두 바꾸어준다. 안바꾸면 톰캣 실행이 안됨.
Tomcat admin port
HTTP/1.1
AJP/1.3

3. 전 시간에 만든 http://localhost:8080/webService/DeptProcess?wsdl 웹 브라우저 연결 후 복사 => WEB-INF 밑에 wsdl 폴더를 만들고 거기다가 xxx.wsdl 확장자로 파일 만듬.


4. 몇가지 방법이 있는데 내가 해보니... NEW => WebServic Client를 이용하면 에러가 자꾸 발생해서...

wsdl 파일을 복사해와서 직접 프로젝트 소스에 넣었다.


4-1. wsdl 파일에 커서를 대고 마우스 오른쪽 클릭
4-2. Web Services => Generate Client 클릭

창이 뜨면 그냥 피니쉬 ~~

5. 자바 파일이 생겼다.~~~


6. 테스트해보기

컨트롤러에 생성된 소스를 사용. 웹서비스에서 제공하는 부서정보 데이터를 가져온다.

@Controller
public class HomeController {

private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
logger.info("Start WebService Client");

DeptProcessImplService deptService = new DeptProcessImplService();
DeptProcess d = deptService.getDeptProcessImplPort();

System.out.println("Dept Count => "+d.processDept().size());

for(int i = 0 ; i < d.processDept().size() ; i++ ) {
DeptVo deptVo = d.processDept().get(i);
System.out.println(deptVo.getDeptName());
}


return "home";
}
}


톰캣을 실행하고 클라이언트 주소를 입력, 실행해보면 이클립스 콘솔에 코딩해 넣은 로그 값들이 뜬다.

wsdl 파일은 자바에서 제공하는 wsimport tool를 이용해서 자바 코드를 생성 할 수 있다.

자바가 설치된 bin 폴더에 가면 wsimport.exe 가 보일것이다.
wsimport -keep -verbose http://localhost:8080/webService/DeptProcess?wsd

그런데 난 자바파일 변환하고 클라이언트 프로젝트에 붙여서 call 해보니 xml 파싱에 문제가 있는지 실패...ㅠ.ㅠ

혹시나 wsdl 파싱이 에러가 난다면... CXF2 3.1.12 로 해보길~~~


글이 유용했거나 도움이됐다면 공감 클릭부태합니다.






반응형

댓글