Web/WebService-Axis

Webservice :: AXIS 설치 & 사용법 4/4

나비:D 2008. 5. 22. 14:03

[SOAP 모니터링 사용]


TCP Monitor(윈도APP)

D:/work>java org.apache.axis.utils.tcpmon

위와 같이 하면 자바 위도APP가 실행되는데, 여기서 로컬포트를 지정하는 곳이 있다.

일종의 터널링이라 할 수 있는데, 클라이언트가 이 포트를 통해 요청하면 프락시 역활을 하여 서버에 요청하고 그 결과를 다시 클라이언트에 전송한다.

이 과정에서 TCP Monitor는 클라이언트/서버간 주고 받는 메시지를 파악하게 되는 것이다.

사용자가 할 일은 기존 클라이언트가 서비스를 제공받기 위해 접속하던 주소를 변경해주면 된다.

즉, 아래와 같이 해주면 된다.


//public final static String ENDPOINT = http://127.0.0.1:8080/FOO/services/MyService;

:원래 접속할 서버

public final static String ENDPONT = "http://127.0.0.1:1234/FOO/services/MyService;

:TCP Monitor용 연결


처음 실행 화면, 여기서 리스터 포트는 1234로 설정하고 추가 버튼을 클릭한다.

 

로컬의 1234포트로 클라이언트의 연결을 기다리고 있다.


클라이언트가 접속한 예.


[SOAP Monitor(애플릿)]

http://localhost:8080/axis/SOAPMonitor


[SOAP Monitor 활성화하기]

활성화하리 위해 2과정이 필요하다


1. SOAPMonitorApplet.java 애플릿 컴파일

2. deploy-monitor.wsdd를 통한 SOAP Monitor deploy


1.SOAPMonitorApplet.java 애플릿 컴파일

E:/>type d:/util/axis.bat

@echo off

set AXIS_HOME=D:util.axis-1_4

set AXIS_LIB=%AXIS_HOME%/lib

set AXISCLASSPATH=%AXIS_LIB%/axis.jar;%AXIS_LIB%/jaxrpc.jar;%AXIS_LIB%/saaj.jar;

%AXIS_LIB%/log4j-1.2.8.jar;%AXIS_LIB%/commons=discovery-0.2.jar;%AXIS_LIB%/commons-logging-1.0.4.jar;%AXIS_LIB%/wsdl4j-1.5.1.jar

set CLASSPATH=%CLASSPATH%;%AXISCLASSPATH%

E:/>axis.bat

E:/>cd "%CATALINA_HOME%/webapps/axis"

E:/>Program Files/Apache Software Foundation/Tomcat 5.5/webapps/axis>javac SOAPMonitorApplet.java

Note : SOAPMonitorApplet.java.uses or overrides a deprecated API.

Note : Recompile with -Xlint : deprecation for details.

Note : SOAPMonitorApplet.java uses unchecked or unsafe operations.

Note : Recompile with -Xlint : unchecked for details.


2. deploy-monitor.wsdd를 통한 SOAP Monitor deploy

D:/work>java org.apache.axis.client.AdminClient deploy-monitor.wsdd

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

log4j:WARN Please initialize the log4j system property.

Processing file deploy-monitor.wsdd

<Admin>Done processing</Admin>


[deploy-monitor.wsdd]

<deployment xmlns=http://xml.apache.org/axis/wsdd/

                   xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

    <handler name="soapmonitor"

                 type="java:org.apache.axis.handlers.SOAPMonitorHandler">

        <parameter name="wsdlURL"

                         value="/aixs/SOAPMonitorService-impl.wsdl" />

        <parameter name="namespace"

                         value=http://tempuri.org/wsdl/2001/12/SOAPMonitorService-impl.wsdl />

        <parameter name="serviceName" value="SOAPMonitorService" />

        <parameter name="portName" value="Demo" />

    </handler>

    <service name="SOAPMonitorService" provider="java:RPC">

        <parameter name="allowedMethods" value="publishMessage" />

        <parameter name="className" value="org.apache.axis.monitor.SOAPMonitorService" />

        <parameter name="scope" value="Application" />

    </service>

</deployment>


[브라우저에서 SOAP 모니터를 실행]


[SOAP Monitor 사용예]

deploy.wsdd작성시 requestFlow, responseFlow를 추가해주면 해당 웹서비스가 주고받는 SOAP메시지를 실시간으로 볼 수 있다.

개발과정에서 아주 요긴하게 사용될 수 있다.

2회때 사용한 예제에서 deploy.wsdd파일에 다음을 추가해주기만 하면된다.

[deploy,wsdd]

<deployment xmlns=http://xml.apache.org.axis.wsdd/ xmlns:java="http://xml.apache.org.axis/wsdd/providers/java">

    <service name="MyService" provider="java:RPC">

        <parameter name="className" value="MyService" />

        <parameter name="allowMethods" value="*">

        <requestFlow><handler type="soapmonitor" /></requestFlow>

        <responseFlow><handler type="soapmonitor" /></responseFlow>

    </service>

</deployment>


D:/work>java Client "안녕, 세상아!"

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

log4j:WARN Please initialize the log4j system property.

You typed : 안녕, 세상아!

D:work>


브라우저에 모니터링된 SOAP,메시지는 그림과 같다.