1.1发布web service
NC5.5以上的版本,都内建了uapws模块,利用该模块要发布一个webservice非常方便。只需要完成以下几个步骤即可,这里将用一系列的例子来说明。
nc.ws.intf.IHelloService.java |
package nc.ws.intf;
public interface IHelloService { public String hello(String str); } |
- 然后建立这个接口的实现类:
nc.ws.impl.HelloImpl.java |
package nc.ws.impl;
import nc.ws.intf.IHelloService;
public class HelloImpl implements IHelloService {
public String hello(String str) { return "hello " + str; }
} |
- 将这个接口作为web Service发布到nc系统中,发布的原理是:在一个upm文件中声明一个public component, 这个component将会在nc启动后加载到容器中,外部系统即可通过调用uapws的servlet来调用这个component暴露的方法。具体发布的方法是,先安装nc webservice eclipse插件(内网可到\\uapserver03\webdir上下载nc.uap.mde.wstools_1.0.3.jar,拷贝到eclipse的plugins目录然后重启eclipse).
安装完插件后在接口类IHelloService.java处点右键,选择WS Tools-> publish Web Service,将弹出一个向导。
填写一个新的upm文件或选择一个已存在的upm文件,然后点next>
在这个界面中,只需要填写 实现类的类名即可,接口已经自动填写好了,其它设置都用默认的。继续点击next> 进入下图的界面
这个界面无需填写任何设置。关键的 Extension class设置和 WSDL location以及 Address都已经自动填写了,而Interceptors是很少使用的配置,一般不用填写。
再次点击Next进入下一个页面。
这个界面用于配置web service的安全,(默认的是否要求认证授权是勾选上的。)一个接口发布为web service后,往往可以使用认证授权、签名、加密等方法来保障web service的安全,而web service安全的实现比较复杂,在该文档中将一步步展来话明。 这里选实现一个不带任何安全选项的web service:将Web Service的安全配置选项全部不勾选。如上图选示,然后点击Finish即可。
发布完成后将在eclipse的项目下建立一个名为ws的源文件夹,并在nc.ws.intf包下生成IHelloService.wsdl的文件,该文件描述了HelloService提供的所有功能和调用方法。由于这是一个最简单的Web Service,还不涉用传入参数和返回值是复杂VO的情况,所以生成的文件暂时只有WSDL文件和一个upm文件。Upm文件位于模块META-INF文件夹下:
T_WebService.upm |
<?xml version='1.0' encoding='UTF-8'?> <module> <public> <component> <interface>nc.ws.intf.IHelloService</interface> <implementation>nc.ws.impl.HelloImpl</implementation> <extension class="nc.uap.ws.deploy.OxbWSExtensionProcessor" |