출처: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)