본문 바로가기

웹서비스

AXIS2.0 설치및 환경설정

출처 : http://pilgood.tistory.com/4

웹서비스란것이 무엇인지 약간의 감만 잡았다면....
무식하고 용감하게 일단 한번 구현해보는 것이 좋지 않을까 싶다.
하다보면 이해가는 부분도 생길것이도 다시 의문이 생기기도 하고 그러다보면 재미도 약간은 생기겠지..

머 서론은 접어두고, 훌륭하신 선배님들께서 이미 반석을 다 깔아 놓으셨다!!!
우리 무지한 후배들은 그저 정보의 바다에서 잘 찾아서 정리만 하면 된다.
그래서 나두 한번 정리해보고자 한다.
한마디로 여기저기서 막펌한 담에 짜집기 한번 하겠다는 야그다. 너무 머라하지 마라.....

Tomcat을 만들어서 수많은 개발자들에게 찬사와 고통을 동시에 안겨주는 apache에서 AXIS라는 웹서비스 API를 맹글었다.
당연히 무료다.
여기서 Tomcat과 AXIS를 연동해서 간단한 웹서비스를 구현해 보자.

WinXP, java1.5. Tomcat5.5, AXIS2.0 환경에서 해보면 될것 같다. (나중에 안 사실이지만 tomcat이 필요가 없다...)

1. 일단 java1.5 버젼을 다운 받아서 설치하자.

(이런것 까지 일일히 설명해 주길 바라지 말자. 검색하면 널리고 널린것이 자바 환경설정 하는 방법이다.'윈도우 설치하는 법 설명해주세요'라는 것과 별반 다를바 없는 야그다.)

2. java1.5 버젼 다운 받았으면 이번에는 웹서버로 사용할 Tomcat이다. 버젼은 5.5 full 버젼으로 했다..
(이것두 걍 패스 하겠다. 복잡한 설정없고 걍 깔기만 하면 된다.)
java 설치할때 처럼 classpath를 설정해야 하다.
-참고로 나는 윈도우용 톰캣은 잘 안받는다. 별도로 필요한 것이 거의 없기 때문에 기냥 코어 받아서 깔았다. 머 취향대로 알아서 하자.

3.AXIS2도 다운받도록 하자. 다운URL은
http://ws.apache.org/axis2/download/1_4_1/download.cgi다.
AXIS1과 AXIS2의 차이는 나두 잘 모르겠다. 짧은 영어실력으로 대강 해석해 보면 AXIS1은 SOAP만 지원하지만 AXIS2는 SOAP1.2도 지원하고 이외에 요즘 많이 나오고 있는 REST도 지원한다는 말인거 같다. 더 궁금하면 아파치사이트에서 해석하면 될것이다. 현재 나와있는 최신 버젼은 AXIS2 1.4.1 이란다. 일단 최신으로 다운받았다.
사이트 들어가보면 다운 받을 수 있는 파일이 4개가 있다. 맨위에 거 받으시면 되겠다. 나머지 3개는 머냐???
나두 잘 모르겠다. doc야 머 api를 얘기하는 것일거구 나머지는 읽어바도 머 기냥 그런건가 보다 하구 있다. 정확한 의미를 아는 사람 나중에 알려주면 매우매우 감사하겠다.

암튼 axis2-1.4.1-bin를 다운 받아서 원하는 곳에서 압축을 푸시면 되겠다.
본인은 (C:\axis2)에 설치했다.
그럼 잠시 디렉토리를 살펴보자.

%AXIS_HOME%\bin : 여러가지 실행 파일이 있다. java2wsdl, wsdl2java등등
- 웹서비스에서는 WSDL이라는 XML형태에 모든 패키지 구조가 담겨있다. java로 코딩후 WSDL로 제너레이트 해주는 명령어가 java2wsdl 이다. 반대로 wsdl을 읽어서 java로 변환해 주는 것이 wsdl2java이다.

%AXIS_HOME%\lib : AXIS 환경 구성을 위한 라이브러리

%AXIS_HOME%\webapps :JSP/Servlet 컨테이너에 등록하기 위한 웹 어플리케이션


- SOAPXML메세지이므로XML파서를 기본으로 사용하는데Xerces를 권장한다.
톰캣에는Xerces파서가 라이브러리에 포함되어 있어서 톰캣4.1.x이상의 버전이면 되고
클라이언트 쪽에서는CLASSPATHXercesjar를 등록하는 것으로 환경 준비를 마친다.

4. 환경변수 설정
- 다운 받을 것들은 다 받은 거 같다.
- 환경변수 설정해 보자. java, tomcat, axis 모다 써놓겠다.(윈도 기준이다.)
JAVA_HOME : C:\Program Files\Java\jdk1.5.0_19(본인의 java가 설치된 디렉토리다.)
Path : %JAVA_HOME%\bin 를 추가했다.(앞에다가 ;붙이는거 잊지말자.)
CLASSPATH : .;%JAVA_HOME%\lib\tools.jar;C:\Tomcat5\common\lib\servlet-api.jar;(뒤에 넘은 톰캣 설정이다.)

여기까지가 자바와 톰캣 설정이다. 이제 AXIS 설정하자.
AXIS2_HOME: C:\axis2
AXIS2_LIB :%AXIS2_HOME%\lib
AXIS2CLASSPATH:%AXIS2_LIB%\activation-1.1.jar;%AXIS2_LIB%\annogen-0.1.0.jar;%AXIS2_LIB%\axiom-api-1.2.7.jar;%AXIS2_LIB%\axiom-dom-1.2.7.jar;%AXIS2_LIB%\axiom-impl-1.2.7.jar;%AXIS2_LIB%\axis2-adb-1.4.1.jar;%AXIS2_LIB%\axis2-adb-codegen-1.4.1.jar;%AXIS2_LIB%\axis2-ant-plugin-1.4.1.jar;%AXIS2_LIB%\axis2-clustering-1.4.1.jar;%AXIS2_LIB%\axis2-codegen-1.4.1.jar;%AXIS2_LIB%\axis2-corba-1.4.1.jar;%AXIS2_LIB%\axis2-fastinfoset-1.4.1.jar;%AXIS2_LIB%\axis2-java2wsdl-1.4.1.jar;%AXIS2_LIB%\axis2-jaxbri-1.4.1.jar;%AXIS2_LIB%\axis2-jaxws-1.4.1.jar;%AXIS2_LIB%\axis2-jaxws-api-1.4.1.jar;%AXIS2_LIB%\axis2-jibx-1.4.1.jar;%AXIS2_LIB%\axis2-json-1.4.1.jar;%AXIS2_LIB%\axis2-jws-api-1.4.1.jar;%AXIS2_LIB%\axis2-kernel-1.4.1.jar;%AXIS2_LIB%\axis2-metadata-1.4.1.jar;%AXIS2_LIB%\axis2-mtompolicy-1.4.1.jar;%AXIS2_LIB%\axis2-saaj-1.4.1.jar;%AXIS2_LIB%\axis2-saaj-api-1.4.1.jar;%AXIS2_LIB%\axis2-spring-1.4.1.jar;%AXIS2_LIB%\axis2-xmlbeans-1.4.1.jar;%AXIS2_LIB%\backport-util-concurrent-3.1.jar;%AXIS2_LIB%\commons-codec-1.3.jar;%AXIS2_LIB%\commons-fileupload-1.2.jar;%AXIS2_LIB%\commons-httpclient-3.1.jar;%AXIS2_LIB%\commons-io-1.4.jar;%AXIS2_LIB%\commons-logging-1.1.1.jar;%AXIS2_LIB%\geronimo-annotation_1.0_spec-1.1.jar;%AXIS2_LIB%\geronimo-stax-api_1.0_spec-1.0.1.jar;%AXIS2_LIB%\httpcore-4.0-beta1.jar;%AXIS2_LIB%\httpcore-nio-4.0-beta1.jar;%AXIS2_LIB%\jalopy-1.5rc3.jar;%AXIS2_LIB%\jaxb-api-2.1.jar;%AXIS2_LIB%\jaxb-impl-2.1.6.jar;%AXIS2_LIB%\jalopy-1.5rc3.jar;%AXIS2_LIB%\jaxb-api-2.1.jar;%AXIS2_LIB%\jaxb-impl-2.1.6.jar;%AXIS2_LIB%\jaxb-xjc-2.1.6.jar;%AXIS2_LIB%\jaxen-1.1.1.jar;%AXIS2_LIB%\jettison-1.0-RC2.jar;%AXIS2_LIB%\jibx-bind-1.1.5.jar;%AXIS2_LIB%\jibx-run-1.1.5.jar;%AXIS2_LIB%\log4j-1.2.15.jar;%AXIS2_LIB%\mail-1.4.jar;%AXIS2_LIB%\mex-1.4.1.jar;%AXIS2_LIB%\neethi-2.0.4.jar;%AXIS2_LIB%\soapmonitor-1.4.1.jar;%AXIS2_LIB%\woden-api-1.0M8.jar;%AXIS2_LIB%\woden-impl-dom-1.0M8.jar;%AXIS2_LIB%\wsdl4j-1.6.2.jar;%AXIS2_LIB%\wstx-asl-3.2.4.jar;%AXIS2_LIB%\xalan-2.7.0.jar;%AXIS2_LIB%\xercesImpl-2.8.1.jar;%AXIS2_LIB%\xml-apis-1.3.04.jar;%AXIS2_LIB%\xml-resolver-1.2.jar;%AXIS2_LIB%\xmlbeans-2.3.0.jar;%AXIS2_LIB%\XmlSchema-1.4.2.jar;
- 후후후.... AXIS1당시에는 라이브러리가 이렇게 많은거 같지 않았는데... AXIS2로 넘어오면서 먼가 굉장히 많아졌다. 그래서 그냥 모든 jar파일 다 붙혔다... 그래... 나 무식하다.... AXIS1 당시에는 xml-apis.jar 파일과 xercesImpl.jar이 따로 없어서 apache사이트에서 다운받은 기억이 있는데... 여기에는 포함되어 있다.

CLASSPATH 에 %AXIS2CLASSPATH%를 추가하자
마지막으로
Path : %AXIS2_HOME%\bin 추가하면 끝~

5.tomcat과의 연동..
- AXIS1 때는 tomcat과 연동해서 웹서비스 서버를 구동시켰어야 했는데..... 이 버젼은 필요가 없다..
axis2server.bat 를 실행 시키면 구동이 되더라.... 나 참.... 머 편해진거 같다.
확인은 http://localhost:8080/axis2/services/에서 하면 된다.
그런데.... 먼가 이상하다.

서버는 실행이 되었고 서비스도 분명히 되고는 있는데... 내가 원한 그림은 이것이 아니다.

원하는 그림은 바로 이것이다.. 그런데 설정을 못하것다.
%AXIS_HOME%\conf 폴더에 보면 axis2.xml이 있을것이다. 그넘하고 %AXIS_HOME%\webapp\WEB-INF 폴더의 web.xml하고 연동을 시켜야 하는데 못하것더라...반드시 AP서버가 필요한 것인지 아니면 내가 못찾는것인지....
며칠 고생하면서 이것 저것 해밨지만 잘 안되고 자료도 거의 없어서 일단 포기
Tomcat과 연동을 하기로 결심했다. 나중에라도 알게 되면 올려놓겠다.

tomcat과의 연동은 지나치다 싶을정도로 쉽다.
위에 axis 다운 받은 사이트로 다시 들가서 두번째 것을 다운받자.
압축을 풀면 axis2.war 파일이 있을것이다.

그 파일을 %tocmat_home%\webapps 밑에 복사해서 넣기만 하면 끝이다.
흠... 머 테스트 서버라면 모를까.... 실제 프로젝트 할때 톰캣을 쓰기는 쉽지가 않을 거 같은데....
우얏든... 톰캣 실행해 보면 axis2.war를 물고 올라가면서 위의 그림이 나올것이다.
http://localhost:8080/axis2/

이것 저것 마구마구 눌러보자.

특히 validate 를 눌러보고 그안에 찬찬히 읽어보자. 머 problem, error 이런 말 없이 잘 나오면 된것이다.
사실 위에서 라이브러리들을 미친듯이 패스에 넣었으니... 아마 거의 다 나올것이다. 행여 없으면 path에 해당 jar파일들을 추가해 주기 바란다.