为了在系统中集成AUTOCAD,对VB+web service+J2EE架构方式进行的可行性测试.
一.服务器端开发和运行环境:
editplus+jdk1.4.2+tomcat5.0+Axis1.2.1
其中Axis1.2.1下载地址:http://apache.justdn.org/ws/axis/1_2_1/axis-bin-1_2_1.zip
Axis介绍(参考Axis user-guide):
Axis本质上就是一个SOAP引擎,它是一个提供创建服务器端,客户端和网关的SOAP处理的框架.目前版本是为Java编写的,不过为C++的版本正在开发中.但Axis并不完全是一个SOAP引擎,它还包括以下内容:
1.是一个独立的SOAP服务器.
2.是一个嵌入Servlet引擎(例如Tomcat)的服务器.
3.支持Web Serive Description Language(WSDL).
4.转化WSDL为Java类的工具.
5.例子程序.
6.TCP/IP数据包监视工具.
更多内容可以参考Axis doc.
二.服务器端开发及运行环境的配置:
1.为了简便只要将下载的Axis解压缩,拷贝其中的axis文件夹到{tomcat}//webapps下,启动tomcat.
2.输入http://localhost:8080//axis,可以看到Axis的欢迎页面就算是成功了.
三.web service的开发和部署:
1.部署方式说明:Axis提供两种部署web service的方式:
a.快速部署方式:这种方式只要将一个java源文件改名为jws文件,拷贝到指定的目录下(需要符合一定规范),Axis就可以部署.
b.通过WSDD文件部署,这种方式还没用实验过(要仔细看看文档呀).
2.程序编写,一个简单的类:
public class Hello
{
public String greet(String hello)
{
System.out.println(hello);
return "是你丫呀,抽空聚聚!";
}
}
3.web-service部署:
为了简单,现在以第一中方式部署web service.将文件保存,拷贝到{tomcat}//webapps//axis下,改名为Hello.jws,在浏览器中输入http://localhost:8080/axis/Hello.jws?wsdl就可以看到Hello这个类对应的WSDL文件了.
到这里服务器端的web service开发,运行环境,发布就完成了,现在进行客户端应用的开发.
四.客户端开发环境:
vb6.0(vb.net)+SOAP toolkit 3.0+AutoCAD2002.
说明:其中SOAP toolkit 3.0在使用vb6.0中才需要,vb.net其中已经包含有访问WEB SERVICE的库,不需要SOAP toolkit.
SOAP toolkit 3.0下载地址:http://download.microsoft.com/download/2/e/0/2e068a11-9ef7-45f5-820f-89573d7c4939/soapsdk.exe
SOAP toolkit说明:
它可以在客户端程序员不需要了解WSDL的语法格式和SOAP的情况下比较容易的创建web service客户端程序,因为使用SOAP toolkit自动解析符合SOAP的XML消息.只需要了解在服务器端已经被描述成WSDL,提供WEB SERVICE的方法原型,也就是说在编程调用web service时只需要参照要调用的方法就可以了.
其中包含以下组件:
1.客户端组件:允许应用程序调用web service被描述在WSDL文件中的操作,该WSDL文件描述在服务器上提供的服务或者操作.
2.服务器端组件:映射web service操作(在WSDL和WSML文件中描述的服务器提供的操作或服务)到COM对象的调用.
3.其他组件:包含了创建、传送、处理SOAP消息的所有组件.
更多内容可以参考SOAP toolkit中的帮助文档.
五.客户端应用的开发:
1.安装SOAP toolkit.
2.安装完成后,在vb中新建一个standard project(exe).
3.在生成的form上放一个command控件,改名为greet.
4.双击command控件,打开代码编辑窗口.
5.为工程引用SOAP库.
6.编写command控件click响应代码:
Dim soapClient As New MSSOAPLib30.SoapClient30
soapClient.MSSoapInit ("http://localhost:8080/axis/Hello1.jws?wsdl")
Dim returnMsg
returnMsg = soapClient.greet("小子,久仰大名,今天俺们终于见面了!")
MsgBox returnMsg
7.运行工程,点击greet,弹出消息框,显示从服务器传递过来的一个字符串内容,并且在服务器控制台中也打印出从客户端传递过去的信息.
测试结果:客户端运行结果
测试结果:客户端运行结果
测试结果:服务器端运行结果
测试结果:服务器端运行结果
测试结果:服务器端运行结果
测试结果:服务器端运行结果
测试成功!
六.总结:
这个例子相当简单,其中服务器和客户端需要编写的代码一共才13行而已,但它确实实现了vb和java服
务器之间的消息传递.这个例子只是为了证实采用web service这种方式为系统集成AUTOCAD的可行性.
通过测试,发现客户端的响应相当快,现在还未进行大数据量的测试,但是AUTOCAD与系统交互的信息比
较少,这种方式完全可以满足要求数据交互量的要求.为了建构一个真正可以实际应用的系统还有很多工作要做,文档就够看的了,长路漫漫!
七.参考资料:
http://www-128.ibm.com/developerworks/cn/webservices/
http://www.microsoft.com/china/MSDN/library/WebServices/default.mspx