本文介绍如何使用soapmonitor以及自定义的module的过程。在网上找到的大部分都是在axis2自带的war包配置的过程,而且是1.4的配置方式,本文是在springmvc的方式下maven管理的项目下新建module。
1.soapmonitor配置,首先是在maven中添加soapmonitor的依赖
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-soapmonitor-servlet</artifactId>
<version>1.6.2</version>
</dependency>
然后再web.xml中添加如下的servlet配置
<servlet>
<servlet-name>SOAPMonitorService</servlet-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>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SOAPMonitorService</servlet-name>
<url-pattern>/SOAPMonitor</url-pattern>
</servlet-mapping>
启动项目后报错,错误如下:我们配置的filter无法转换
java.lang.ClassCastException: org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:255)
找了一段时间发现,是soapmonitor的把servlet-api的jar包又依赖一次,导致出错,改成配置如下
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-soapmonitor-servlet</artifactId>
<version>1.6.2</version>
<exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
启动正常,这时打开soapMonitor页面出错,这时页面的applet出错,class找不到,而后台发现拦截器被拦截掉了,查找一段时间后发现,applet会到后台请求applet的class,于是将applet的class考到webapp目录下,然后修改springmvc注释,将对应请求拦截去除,并且加上mvc:resource的目录映射,这时我们的soapmonitor前台的applet页面终于出现了。
2.在我们的services.xml中加入
<mod ref='soapmonitor'/>
启动项目后出错 webservice无法访问,后台提示找不到相应的module
查找发现是soapmonitor的module没有加载进来,于是添加依赖
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>soapmonitor</artifactId>
<version>1.6.2</version>
</dependency>
但是pom下载不下来,提示错误,后来才发现是mar包,mar的dependcy需要改成如下配置
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>soapmonitor</artifactId>
<version>1.6.2</version>
<type>mar</type>
</dependency>
启动项目,打开soapMonitor可以看到界面,部署成功