西北工业大学 软件工程 Web Services 实验报告答案 实验四.docx
《西北工业大学 软件工程 Web Services 实验报告答案 实验四.docx》由会员分享,可在线阅读,更多相关《西北工业大学 软件工程 Web Services 实验报告答案 实验四.docx(10页珍藏版)》请在冰豆网上搜索。
西北工业大学软件工程WebServices实验报告答案实验四
西北工业大学
《********》实验报告
学院:
软件与微电子学院
学 号:
姓 名:
专业:
软件工程
实验时间:
2014.3.22
实验地点:
毅字楼311
指导教师:
李易
西北工业大学
2014年3月
一、实验目的及要求
1.练习如何优化开发环境。
2.练习如何调试一个web服务。
二、实验设备(环境)及要求
1.PC机最低配置:
2GHz以上CPU;1G以上内存;1G自由硬盘空间
2.JDK1.5.0
3.Eclipse
4.Axis2
5.axis2-eclipse-codegen-wizard-1.4
6.axis2-ant-plugin-1.3
三、实验内容与步骤
1.直接将类文件放入到Axis中。
2.使改变立即生效。
3.调试一个web服务。
4.自动生成代码。
5.自动生成客户端代码。
四、实验结果与数据处理
1.直接将类文件放入到Axis中
右键单击该项目,然后选择"New|Folder",如下所示:
要设置输出文件夹,右键单击Eclipse中的项目,然后选择“Properties”,然后选择“JavaBuildPath”,然后选择“"Source”。
点击“Browse”,然后选择“out”的文件夹,后确认要删除现有的“bin”文件夹。
现在的类文件是在正确的地方。
下一个步骤是使METAINF文件夹出现在服务文件夹。
重命名“resources”文件夹为META-INF,将其移动到“src”,要验证这个设置工作,修改代码将结果字符串转换成大写:
现在启动Axis2的服务器。
运行客户端,输出如下所示:
2.使改变立即生效
恢复代码为:
但是现在它仍然会输出ABC123。
这是因为在默认情况下,一旦Axis服务器加载一个Web服务,它不会监察到更改其文件了。
要改变这个问题,修改c:
\axis\conf\axis2.xml:
重新启动Axis服务器让hotupdateoption生效,然后修改Java代码
保存代码,Axis服务器重新部署服务。
需要注意的是,Axis服务器每10秒查找变化。
因此,在Web服务重新部署前可能会花费一点时间。
3.调试一个web服务
要调试Eclipse中的Web服务,在启动Axis服务器之前需要设置一个环境变量:
通过这种方式,Axis服务器将在调试模式下运行JVM,这样JVM会侦听8000端口的连接。
设置一个断点:
选择"OpenDebugDialog":
会出现下面的窗口:
右键单击“RemoteJavaApplication”,然后选择“New”,命名此配置为“DebugAxis”,确保SimpleService项目被选中,并确保端口是8000。
单击“Debug”连接到JVM,运行Axis服务器。
现在,运行客户端来调用Web服务。
Eclipse会在断点处停止:
然后,你可以单步执行程序。
如果要停止调试,在调试窗口中选中SimpleService,单击“stop”。
4.自动生成代码
定义一个环境变量AXIS2_HOME,选择“Window|Preferences|
Ant|Runtime”,选择“Properties”,点击“Properties”。
点击“AddProperty”。
现在,运行Ant。
为了验证它是否真的工作,重命名SimpleServiceSkeleton.java文件为SimpleServiceImpl文件。
然后删除包里所有其他Java文件。
删除META-INF文件夹中的文件。
错误警报:
在Axis2代码生成向导中有一个bug。
安装后,将无法在Eclipse中运行Ant。
要解决此问题,在上面的Ant的Runtime窗口中,选择“Classpath”选项,然后单击“AntHome“,然后浏览选择c:
\eclipse\plugins目录下的org.apache.ant文件夹。
要运行Ant,右键单击build.xml文件,然后选择“RunAs|AntBuild...”
如下图所示:
然后选择“generate-service”,然后单击“Run”:
控制台结果如下所示:
然后刷新项目,你会看到Java文件和METAINF中的文件已重新建立。
现在,理想情况下,如果你的WSDL文件被修改,你需要做的就是再次运行build.xml文件。
但是这不是默认行为。
默认情况下,任务不会覆盖任何现有文件。
但是,这带来了另一个问题:
如果填写代码转换成SimpleServiceSkeleton,当运行build.xml文件,该文件将被覆盖,代码也将会消失。
因此应该创建自己的实现相同接口的SimpleServiceImpl。
为了使用SimpleServiceImpl来实现Web服务,需要知道Axis服务器是如何知道有哪些Java类实现了webservice。
它在services.xml文件中查找类名。
5.自动生成客户端代码
生成客户端代码,与上面类似。
删除客户端包中除了自己创建的SimpleClient.java以外的文件。
运行build.xml并选择“generate-clien”。
刷新这个项目,你会再次看到客户端软件包中的Java文件。
为了确保一切工作,启动Axis服务器并运行客户端。
它会继续工作。
五、分析与讨论
1.若无需手动将相关文件拷贝到Axis服务器中的service文件夹中来发布一个服务,你该如何做?
在eclipse中把class文件直接插入到Axis存储库。
2.为了保证你的Java代码的改变立刻生效,你该如何做?
修改c:
\axis\conf\axis2.xml,重新启动Axis服务器让hotupdateoption生效,然后修改Java代码,保存代码,Axis服务器重新部署服务。
3.如何调试一个web服务?
(1)、在启动Axis服务器之前需要设置一个环境变量;
(2)、设置一个断点;
(3)、右键单击“RemoteJavaApplication”,然后选择“New”,命名此配置为“DebugAxis”,确保SimpleService项目被选中,并确保端口是8000。
(40、单击“Debug”连接到JVM,运行Axis服务器。
现在,运行客户端来调用Web服务。
Eclipse会在断点处停止。
(5)、然后,单步执行程序。
六、教师评语
签名:
日期:
成绩