AXIS 설치

1. Axis압축파일(axis-bin-1_4.zip)를 다운받아 압축파일내에 있는 webapps/axis 폴더를 %CATALINA_HOME%/webapps에 푼다

2. 톰캣을 실행하고 브라우저에서 http://localhost:8080/axis/주소로 연결되면 성공


[Trouble Shooting]

위의 주소로 연결후 CAll이라고 되어 있는 링크를 클릭하면 아래와 같은 에러가 발생할 수 있다.

Call -Call a local endpoint that list's the caller's http headers

에러 : java.lang.RuntimeException: No compiler found in your classpath!(you may need to add 'tools.jar')


이는 톰캣 설치시 사용할 런타임 JRE 위치를 JDK가 아닌 JRE로 했기 때문입니다.

이럴 경우 톰캣을 다시 설치하여 JDK쪽의 경로로 변경해주면 된다. 그럴 수 없다면 JDK의 tool.jar를 %CATALINA_HOME%/common/lib로 복사해주면 된다.


JAVA_HOME은 E:/Program Files/Java/jdk1.5.0_09/lib/tool.jar

D:/work>copy "%JAVA_HOME%/lib/tools.jar" "%CATALINA_HOME%/common/lib"

1개 파일이 복사되었습니다.


Administer Axis, SOAPMonitor는 디폴트로 사용할 수 없게 되어 있으므로 지금은 무시한다.

Administer Axis는 web.xml에서 해당 부분을 주석해제하면 사용할 수 있고, SOAPMonitor는 4부에서 설명하겠다.


 [부가기능 설치]

3. JavaMail(javamail-1_4.zip)을 다운받아 압축파일내 mail.jar를 CLASSPATH에 등록

http://java.sun.com/products/javamail/downloads/index.html

4. ㅓㅁㅍ므먀ㅣsms ㅓㅁㄹ vozlwl(jaf-1_1-fr.zip)를 필요로 하므로 이 또한 설치(activation.jar)

http://java.sun.com/beans/glasgow/jaf.html

* 즉, mail.jar와 activation.jar를 %CATALINA_HOME%/common.lib에 넣어주면 된다.


[웹서비스 작성과 테스트(서버측)]

소스파일의 확장자를 jws로 변경하여 올리면 알아서 웹서비스를 수행한다.

jws확장자를 가지면 AXIS는 이 파일이 SOAP기능을 수행할 수 있게 자동으로 모든 과정을 처리해준다.

간편하게 테스트용으로 사용할 수 있겠으나 내부적으로 어떻게 돌아가는지 파악이 되지 않으므로 이런자동구성보다는 수동으로 제어(WSDD파일을 이용)하는 것이 바람직할 것이다.


D:work>type Calculator.java

public class Calculator{

    public int add(int a, int b){

        return a+b;

    }

    public int subtract(int a, int b){

        return a-b;

    }

}


D:work>copy Calculator.java "%CATALINA_HOME%webappsaxisCalculator.jws"

1개 파일이 복사되었습니다.


* .jws 확장자를 가지면 웹서비스로 인식하게끔 web.xml에 설정되어 있다.

위처럼 작업한 뒤, 브라우저에서 http://localhost:8080/axis/Calculator.jws로 접속하면 아래와 같다.


[브라우저 접속화면]

위처럼 확장자를 jws로 만들어 deploy하며느 AXIS는 자동으로 웹서비스가 제공될 수 있도록 처리해준다.

사용자 삽입 이미지


WSDL도 자동으로 만들어 주므로 편하다.


사용자 삽입 이미지


[콘솔에서 테스트 클라이언트(클라이언트측)]

D:work> type CalcClient.java


import org.apache.axis.client.Call;

import org.apache.axis.client.Service;

import org.apache.axis.encording.XMLType;

import org.apache.axis.utils.Options;

import javax.xml.rpc.ParameterMode;

public class CalcClient{

    public static void main(String[] args) throws Exception{

        Options options = new Options(args);

        String endpoint = http://localhost: + options.getPort() + "/axis/Calculator.jws";

        args = options.getRemainingArgs();

        if ( args == null || args.length != 3){

            System.err.println("Usage: CalcClient <add|subtract> arg1 arg2");

            return;

        }

        String method = args[0];

        if ( !(method.equals("add") || method.equals("subtract"))){

            System.err.println("Usage: CalcClient <add|subtract> arg1 arg2");

            return;

        }

        Integer i1 = new Integer(args[1]);

        Integer i2 = new Integer(args[2]);

        Service service = new Service();

        Call Call = (Call) service.createCall();

        call.setTargetEndpointAddress( new java.net.URL(endpoint));

        call.setOperationName(method);

        call.addParameter("op1", XMLType.XSD_INT, ParameterMode.IN);

        call.addParameter("op2", XMLType.XSD_INT, ParameterMode.IN);

        call.setReturnType(XMLType.XSD_INT);

        Integer ret = (Integer) call.invoke(new Object [] {i1, i2});

        System.out.println("Got result : " + ret);

    }

}


D:/work>set AXIS_HOME=D:/util/axis-1_4

D:/work>set AXIS_LIB=%AXIS_HOME%/lib

D:/work>set AXISCLASSPATH=%AXIS_LIB%/axis.jar;%AXIS_LIB%/jaxrpc.jar;%AXIS_LIB%/saaj.jar;%AXIS_LIB%/log4j-1.2.8.jar;%AXIS_LIB%/common-discovery-0.2.jar;%AXIS_LIB%/commons-logging-1.0.4.jar;%AXIS_LIB%/wsdl4j-1.5.1.jar

D:/work>set CLASSPATH=%CLASSPATH%;%AXISCLASSPATH%

D:/work>javac CalcClient.java

D:/work>java CalcClient add 1 2

log4j:WARN No appenders could be found for logger (org.apache.axis.i18n.ProjectResourceBundle).

log4k:WARN please initialize the log4j system. properly.

Got result : 3

D:work>java CalcClient subtract 3 1

log4j:WARN No appenders could be found for logger(org.apache.axis.i18n.ProjectResourceBundle).

log4j:WARN Please initialize the log4j system property.

Got result : 2


D:/work>

Posted by 나비:D
:
BLOG main image
by 나비:D

공지사항

카테고리

분류 전체보기 (278)
Programming? (0)
---------------------------.. (0)
나비의삽질 (5)
Application (177)
SQL (51)
Web (27)
etc. (14)
Omnia (0)
---------------------------.. (0)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

달력

«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Total :
Today : Yesterday :