??xml version="1.0" encoding="utf-8" standalone="yes"?> 下面是配|和使用soapmonitor模块的步骤: W?/span>1步:部vApplet?/span>Servlet ׃axis2默认情况下已l自带了soapmonitor模块Q因此,soapmonitor模块q不需要单独安装。但applet所涉及到的相应?/span>.class文g需要安装一下。在<Tomcat安装目录>\webapps\axis2\WEB-INF\lib目录中找?/span>soapmonitor-1.4.1.jar文gQ将该文件解压。虽?/span>appletq不需?/span>soapmonitor-1.4.1.jar文g中所有的.class文gQ但Z方便Q?br />
读者也可以直接解压目录中?/span>org目录复制?/span><Tomcat安装目录>\webapps\axis2目录?/span>Applet所需?/span>.class文g需要放在这个目录?br />
然后再将org目录复制?/span><Tomcat安装目录>\webapps\axis2\WEB-INF\classes目录中,soapmonitor模块中的Servlet所对应?/span>.class文g需要放在这个目录?span style="color: red">(q一步不做也可以,因ؓlib包底下有soapmonito-1.4.1.jar文g) W?/span>2步:配置Servlet 打开<Tomcat安装目录>\webapps\axis2\WEB-INF\web.xml文gQ在其中加入如下的内容: W?/span>3步:?/span>services.xml文g中引?/span>soapmonitor模块 与引用logging模块一P引用soapmonitor模块也需要?lt;module>元素Q引用soapmonitor模块的services.xml文g的内容如下: ׃soapmonitor模块已经?/span>axis2.xmlq行配置了,因此Q在本例中不需要再?/span>axis2.xml文gq行配置了?nbsp; W?/span>4步:使用soapmonitor模块 启动Tomcat后,在浏览器中输入如下的URLQ?br />
在浏览器中将出现soapmonitor所带的Applet的界面,当访?/span>MyService?/span>getGreetingҎӞ?/span>Tomcat控制CApplet中都昄了相应的SOAPh和响应消息。如?/span>1和图2分别是调用了两次getGreetingҎ后输出的SOAPh和响应消息?br />
如果读者想?/span>logging?/span>soapmonitor模块监视部v?/span>Axis2中的所?/span>WebServiceQ可以在axis2.xml文g中?/span><module>元素来引用这两个模块Q代码如下:
<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>
<description>
使用logging和soapmonitor模块
</description>
<!-- 引用logging模块 -->
<module ref="logging"/>
<!-- 引用soapmonitor模块 -->
<module ref="soapmonitor"/>
<parameter name="ServiceClass">
service.MyService
</parameter>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</messageReceivers>
</service>
http://localhost:8080/axis2/SOAPMonitor
?
?
<module ref="logging"/>
<!-- 引用soapmonitor模块 -->
<module ref="soapmonitor"/>
---->ҎStub来写试用例
转蝲:http://chineseoa.javaeye.com/blog/192018
本实验的目的是让你尽可能快的创徏使用 Axis2 的服务和客户端,我们用一个简单的 SayHello 服务q显C给你一些创建和部v它的不同方式Q以及了?Axis2 自带的一些工P然后我们看看创问这些服务的客户端?
一 . 做好准备
在我们?Axis2 构徏M东西之前Q我们将需要关注一些家务事。现在你需要准备好你?Axis2 的环境,q运的是Q它只包括一些简单的步骤 :
1. 软g下蝲准备
2. 安装
1) 首先搭徏开发环境,需要将下蝲到的 Eclipse 解压~到一个目?, 然后安装?MyEclipse
2) 下载到?Axis2 的两个插件解压羃?Eclipse 安装目录下的 plug-in 子目录?
3) 然后启动 Eclipse Qƈ选择“ File->New->Other ”可以扑ֈ下面的这?Wizards, q些是本文中用到的很重要的工具?
4) 下面开始搭?Web Services 的部|环境。将下蝲?tomcat 报解压羃C个目录。完?web container 的安装?
5) ?axis2.war 包拷贝到 tomcat 安装目录下的 webapps 目录中?
6) 启动 Tomcat(windows 下ؓ TOMCA_HOME/bin 中的 startup.bat Q?Linux Q?unix 环境?startup.sh 文g ) Q打开览器输入ƈ讉K :http://ip:8080/axis2 Q或 2 http://localhost:8080/axis 2 Q来查看 , 如果能看C面的面则说明已l安装完成?
二、进入开?
在开发环境及 Axis2 环境搭徏好后Q我们便可着?Web Services 服务以及客户端的开发:
1Q?建立要发布的 Web Services
1Q?nbsp; ?Eclispse 中添加一个用户库命名?axis2 Q将 axis2\lib 下的包均dq来?
?“Package Explorer” H口I白中单d键,从右键快捯单中选择“ Properties” 菜单Q然后在弹出的窗口中如下囄操作Q最后在图中 6 所CZ|处填入 axis2 ?lib 位置的\径即可;
q一步操作的目的是ؓ了以后工E添?axis2 所需?jar 文g方便Q?
2Q?nbsp; 建立一?JavaProject 命名?ws Q将 axis2 用户库加入到 build path 中?
3Q?nbsp; 现在开始编写要发布?WebSevice Q在 src 中徏?briup Q徏?Hello cd?
package briup;
public class Hello {
public String sayHello(String user) {
return "Hello, " + user;
}
}
2Q?发布 Web Services
打包要发布的 Service Q?Eclipse ?New --> File --> Other --> Axis2 wizards --> Axis2 Services Archiver Q按照向导选择刚徏立的cȝ译后?class 文g?
1) 选择 class 文g目录Q注意,不是 java 源文Ӟ而是 classes 目录?
2) q按两次 “Next>” Q选中 “Generate the service xml automatically” Q?
3) 按下一步,输入 service 名称和类名; 注意cd要有包名
4) 按下一步,输入 service 文g的保存\径和文g名,完成?
q里保存\径设?C 盘,文g名ؓ ws Q按完成保存成功。这时侯切换C存\径会发现新增一文g?ws.aar Q将其拷贝到 Tomcat 5.5\webapps\axis2\WEB-INF\services 目录下,重新打开 http://localhost:8080/axis2/services/listService ׃发现 AccountService 已经发布成功Q现在就可以应用q个 Web 服务了?
3Q?试
通过 WSDL 文g生成 CallbackHandler.java ?AccountServiceStub.java Q?
1Q?nbsp; New --> File --> Other --> Axis2 wizards --> Axis2 Code Generator
2Q?nbsp; 选择 Generate Java source code from a WSDL file Q按下一?
3Q?nbsp; ?Browse 选择或输?wsdl 文g位置Q按下一?
到现在ؓ止,我们q未自行~写以及生成 WSDL 文g。当 web service 发布后即可通过讉K http://localhost:8080/axis2/services/ws?wsdl 可以得?wsdl 文g。既然如此,我们可以在地址栏中直接输入 URL Q?
4Q?nbsp; 使用默认的配|,按下一步。在弹出的新H口中,然后选择生成文g的存放\径,完成两个 Java 文g的生成?
5Q?nbsp; 在工E目录按 F5 hQ就可以看到刚生成的文g。如图:
6Q?nbsp; ~写服务试E序 WsTest.java 如下Q?
package briup;
public class WsTest {
public static void main(String[] args) throws Exception {
WsStub stub= new WsStub( "http://localhost:8080/axis2/services/ws" );
WsStub.SayHello sayHello= new WsStub.SayHello();
sayHello.setUser( "briup" );
WsStub.SayHelloResponse res=stub.sayHello(sayHello);
System. out .println(res.get_return());
}
}
q行l果如下Q?
在执行的时侯Q切记要杀毒Y件或防火墙Y件关闭。否则执行时出现以下报错信息Q?
1. backport-util-concurrent-3.1.jar?$AXIS2_HOME\lib 处拷贝至 $ECLIPSE_HOME\plugins\Axis2_Codegen_Wizard_1.3.0\lib;
2. ~辑文g $ECLIPSE_HOME\plugins\Axis2_Codegen_Wizard_1.3.0\plugin.xml, 在其中runtime元素中增加内容:
<library name="lib/backport-util-concurrent-3.1.jar">
<export name="*"/>
</library>
3. ?$workspace位置\.metadata\.plugins下目?Axis2_Codegen_Wizard 删除
4. 在命令行下切换至$ECLIPSE_HOME目录Q然后执行:
eclipse -clean