Nc 开发webservice.docx
- 文档编号:1689374
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:11
- 大小:709.62KB
Nc 开发webservice.docx
《Nc 开发webservice.docx》由会员分享,可在线阅读,更多相关《Nc 开发webservice.docx(11页珍藏版)》请在冰点文库上搜索。
Nc开发webservice
Nc开发webservice
1.
下载eclipse-wtp-all,集成了webservice开发插件
下载eclipse-ncpluginnc开发插件,
下载axis2-1.4
以上下载可以到
webservice工具下载下进行下载,jdk版本选择1.5以上
下载axis1.4解压缩把其webapps目录下axis放到nchome/hotweb下,其中的lib下jar包要删除一些,不要和nchome/lib里的重复,
保留五个axis.jar,axis-ant.jar,saaj.jar,wsdl4j-1.5.1.jar,commons-discovery-0.2.jar就可以
2.Axis开发介绍
Axis(ApacheextensibleInteractionsystem)是Apache项目组织的一个开源项目。
前身是ApacheSOAP,它通过如下方法来扩展了soap2.0的功能:
AXIS的关键功能和优势表现在速度(早期的SOAP的分析机制是基于DOM的,而AXIS是基于SAX的),灵活性(提供了在引擎中插入新扩展的功能,可以对头部信息的处理和系统管理进行定制,在WSDD中对服务,Handler对象和串行并行程序进行描述),面向组件展开(引入了链接chainable和Handler的概念),传输框架(SOAP可以建立在SMTP,FTP,HTTP等多种传输层协议上)。
Axis支持三种webservice的部署和开发,分别为:
1、DynamicInvocationInterface(DII)
2、DynamicProxy方式
3、Stubs方式
对于前两种WebService的发布基本一样,客户端的访问也很类似,第一种发布就是直接将.java后缀改为.jws,并将生成的.class文件拷贝到WEB-INF/jwsclasses下面,这样的例子直接在Axis上就有,非常简单,但它也有缺陷,就是不适合程序部署和大型项目开发,而且不支持包(package)的形式,第三种是目前比较流行的方式,stub意思是树桩,意味着服务端和客户端都是通过桩的形式来完成访问的,即在服务端将java转换成wsdl,在客户端将wsdl装换成java,这样就实现了良好的桩的分离
3,创建一个Webservice服务。
在eclipse中创建一个动态的web工程。
New->Project->DynamicWebProject。
在TargetRuntime中设置服务,这里选择apache-tomcat-V5.5,并设置tomcat目录
3
在工程的src下,写一个service类,比如:
publicclasstest2{
publicStringsayHi(Stringname)
{
return"hi,"+name;
}
}
publicStringsayHi(Stringname)就是要调用的远程方法
在这个类的文件名上点击右键,选择”WebServices"->“CreateWebService”,就会出现下面的界面:
要选上TestClient,这样创建Service的同时,会创建一个Service的test工程
点击next选择方法名称
点击"next",点击“StartServer”,就会启动Tomcat,并将工程部署上去。
如果点击“Launch”会打开刚才创建的WebService的测试界面,可以进行测试。
这时候,会出现测试创建代理类的界面,代理类会创建在自动生成的测试工程中,也就是LogonWebServiceTest工程中。
点击“next”,会自动生成代理类,并出现选择测试方法的界面。
你可以选择相应的方法,这样eclipse会生成相应的页面。
点击"Finish"就可以了,这时,会自动启动一个页面
点击左边相应的方法,就可以进行测试了。
生成的客户端代理类
4
部署到nc过程
类放到nchome\hotwebs\axis\WEB-INF\classes下。
代码放到此可以直接调用nc的类
server-config.wsdd放到nchome\hotwebs\axis\WEB-INF。
也可以将源代码拷贝到nchome\hotwebs\axis下,改后缀java为jws
在浏览器输入http:
//127.0.0.1/axis/services/HelloWorld.jws
点击ClicktoseetheWSDL,如果看到如下界面就表示你已经成功发布一个WebService了,就这么简单,如果出现错误就表示你的配置错误,或者是你的web.xml有问题,或者是你的包引用有问题.,不建议用jws方式发布。
测试发布:
在浏览器输入http:
//127.0.0.1/axis/services/HelloWorld
如果出现如下界面表示webservice发布成功
5
客户端测试程序
客户端在测试的时候需要引入commons-discovery-0.2.jar,axis.jar
HelloClient.java
importjava.util.ArrayList;
importnc.webservice.NcwebServiceLocator;
importorg.apache.axis.client.Call;
importorg.apache.axis.client.Service;
importDefaultNamespace.HelloWorldServiceLocator;
publicclassHelloClient
{
publicstaticvoidmain(String[]args)throwsException{
//客户端Stubs方式调用
//HelloWorldServiceLocatorhw=newHelloWorldServiceLocator();
//hw.setEndpointAddress("HelloWorld","http:
//127.0.0.1/axis/services/HelloWorld");
//Stringsss=hw.getHelloWorld().sayHello();
//NcwebServiceLocatorncweb=newNcwebServiceLocator();
//ncweb.setEndpointAddress("ncweb","http:
//127.0.0.1/axis/services/ncweb");
//String[]mss=ncweb.getncweb().getMessageStr("http:
//localhost","0001QW10000000000K2C","1001");
//System.out.println(ncweb.getncweb().sayHello());
//DynamicInvocationInterface(DII)
//Stringendpoint="http:
//127.0.0.1/axis/services/HelloWorld.jws";
//这种方式不稳定,而且不支持包,不建议使用
//DynamicProxy和DII不同之处在于endpoint不一样,其他相同
//Stringendpoint="http:
//127.0.0.1/axis/services/HelloWorld";
Stringendpoint="http:
//127.0.0.1/axis/services/ncweb";
System.out.println("11111111111");
Serviceservice=newService();
System.out.println("2222222222222");
Callcall=(Call)service.createCall();
call.setTargetEndpointAddress(new.URL(endpoint));
call.setOperationName("getMessageStr");
//Stringres=(String)call.invoke(newObject[]{});//无参数
ArrayListee=(ArrayList)call.invoke(newObject[]{"http:
//localhost","0001QW10000000000K2C","1001"});
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Nc 开发webservice 开发 webservice