[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,메시지는 그림과 같다.
[출처] AXIS설치 & 사용법 4/4|작성자 희열