본문 바로가기

웹서비스

Axis2에서 SOAPMonitor 사용하기

출처:http://www.java2go.net/blog/94

Axis2에는 Apache의 TCPMon을 애플릿으로 구현한 SOAPMonitor를 통해 웹서비스에서 처리되는 SOAP 요청/응답 메시지를 모니터링할 수 있다. 다음과 같은 절차로 설치한다.

1. Axis2 웹어플리케이션의 WEB-INF/conf에 있는 axis2.xml에 다음과 같은 라인을 포함해서 SOAPMonitor 모듈을 포함시킨다.

<module ref="soapmonitor"/>

2. axis2.xml에 soapmonitor-1.x.mar에서 참조되는 'soapmonitorPhase'에 대한 Phase 순서를 정의를 한다. 최신버전의 Axis2에는 이 설정이 기본으로 되어 있다.
    <phaseOrder type="inflow">
<!-- System pre defined phases -->
<phase name="TransportIn"/>
<phase name="PreDispatch"/>
<phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
<handler name="AddressingBasedDispatcher"
class="org.apache.axis2.engine.AddressingBasedDispatcher">
<order phase="Dispatch"/>
</handler>
<handler name="RequestURIBasedDispatcher"
class="org.apache.axis2.engine.RequestURIBasedDispatcher">
<order phase="Dispatch"/>
</handler>
<handler name="SOAPActionBasedDispatcher"
class="org.apache.axis2.engine.SOAPActionBasedDispatcher">
<order phase="Dispatch"/>
</handler>
<handler name="SOAPMessageBodyBasedDispatcher"
class="org.apache.axis2.engine.SOAPMessageBodyBasedDispatcher">
<order phase="Dispatch"/>
</handler>
<handler name="InstanceDispatcher"
class="org.apache.axis2.engine.InstanceDispatcher">
<order phase="PostDispatch"/>
</handler>
</phase>
<!-- System pre defined phases -->
<!-- After Postdispatch phase module author or or service author
can add any phase he want -->
<phase name="userphase1"/>
<phase name="soapmonitorPhase"/>
</phaseOrder>
<phaseOrder type="outflow">
<!-- user can add his own phases to this area -->
<phase name="userphase1"/>
<phase name="soapmonitorPhase"/>
<!-- system predefined phase -->
<!-- these phase will run irrespective of the service -->
<phase name="PolicyDetermination"/>
<phase name="MessageOut"/>
</phaseOrder>
<phaseOrder type="INfaultflow">
<!-- user can add his own phases to this area -->
<phase name="userphase1"/>
<phase name="soapmonitorPhase"/>
</phaseOrder>
<phaseOrder type="Outfaultflow">
<!-- user can add his own phases to this area -->
<phase name="userphase1"/>
<phase name="soapmonitorPhase"/>
<phase name="PolicyDetermination"/>
<phase name="MessageOut"/>
</phaseOrder>

3. web.xml에 다음과 같은 서블릿 설정을 추가해 준다.
    <servlet>
<servlet-name>SOAPMonitorService</servlet-name>
<display-name>SOAPMonitorService</display-name>
<servlet-class>
org.apache.axis2.soapmonitor.servlet.SOAPMonitorService
</servlet-class>
<init-param>
<param-name>SOAPMonitorPort</param-name>
<param-value>5001</param-value>
</init-param>
<load-on-startup>100</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>SOAPMonitorService</servlet-name>
<url-pattern>/SOAPMonitor</url-pattern>
</servlet-mapping>

4. WEB-INF/lib에 있는 soapmonitor-1.x.jar 파일을 풀어 그 중에 SOAPMonitorApplet*.class 클래스들을 모두 웹어플리케이션 ROOT 디렉토리에 복사한다.
SOAPMonitorApplet$SOAPMonitorData.class
SOAPMonitorApplet$SOAPMonitorFilter.class
SOAPMonitorApplet$SOAPMonitorPage.class
SOAPMonitorApplet$SOAPMonitorTableModel.class
SOAPMonitorApplet$SOAPMonitorTextArea.class
SOAPMonitorApplet$ServiceFilterPanel.class
SOAPMonitorApplet.class

5. 브라우저로 다음과 같은 주소에 접근하여 모니터링한다.
http[s]://host[:port][/webapp]/SOAPMonitor (e.g. http://localhost:8080/axis2/SOAPMonitor)


'웹서비스' 카테고리의 다른 글

Axis 서비스 완전히 초기화하기  (0) 2010.07.12
AXIS2 설치시 문제점  (0) 2010.07.12
Flex - SOAP 호출  (0) 2010.07.07
웹 서비스 개발하기, Part 3: SOAP 상호운용성  (0) 2010.07.07
SOAP 에서 첨부파일 전송하기  (0) 2010.07.07