基于 UAP 的 Web Service 开发

来源:互联网 发布:怎么在淘宝买电棒 编辑:程序博客网 时间:2024/06/05 07:30

IUAP之接口开发

一、前言

    1.1说明 

    开发工具:UAP65

    接口开发有很多实现方法,这里记录两种简单的实现方式。(因截图较多,所以显得篇幅较长)

    接口开发需要将nc.uap.mde.wstools_1.0.3.jar包添加到eclipse/plugins下,就是UAP-STUDIO20151229132355\Platform\plugins下;

    1.2名词解释 

WebService

    Web服务,Web Service就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。常用于集成开发,因为它基于HTTP协议传输数据,支持运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,可相互交换数据或集成。

WSDL

    Web服务描述语言(Web Service Description Language),它描述了Web服务的公共接口。这是一个基于XML的关于如何与Web服务通讯和使用的服务描述;也就是描述与目录中列出的Web服务进行交互时需要绑定的协议和信息格式。通常采用抽象语言描述该服务支持的操作和信息,使用的时候再将实际的网络协议和信息格式绑定给该服务。

二、首先创建UAP Project

    2.1此处选择的65版 


    2.2新建UAP Business Component Project(65),Next 


    2.3项目名自定义(规范:项目+模块),Module name模块名要求是当前UAP中存在的模块,此处以pu采购模块为例。
    选中项目右键,新建UAP Business Component(65),Next 


    2.4组件名和显示名,此处以"pu","采购"为例
    Finish完成创建,此时项目结构如下,红色框内是创建项目生成,其他是创建组建生成。


    2.5文件代码 

module.xml代码如下:

<?xml version="1.0" encoding="gb2312"?><module name="pu">    <public>    </public>    <private>    </private></module>

component.xml代码如下:

<component name="pu" displayname="采购">  <dependencies/></component>

三、接口开发 

1.实现方式:Servlet+upm

    1.1简单说明 

    就是Servlet和upm文件实现的接口开发;

    1.2实现步骤 

    这个方式实现起来很简单,首先创建UAP项目。

    在pu/src/private下新建class,命名自定义,此处包名:nc.bs.trans.servlet,类名:TransServlet;

    使TransServlet实现UAP封装的接口nc.bs.framework.adaptor.IHttpServletAdaptor;

    在META-INF下新建upm文件,命名自定义;

    1.3文件代码 

TransServlet.java代码如下:

package nc.bs.trans.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@SuppressWarnings("restriction")public class TransServlet implementsnc.bs.framework.adaptor.IHttpServletAdaptor {//    private final String TEST_LOAD="http://127.0.0.1:8035/servlet/TransServlet";@Overridepublic void doAction(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String success = "test";success = "SUCCESS";}}
PU_SERVLET.upm代码如下:

<?xml version="1.0" encoding='gb2312'?><module name="pu">   <public>       <component accessProtected="false" name="TransServlet" remote="false" singleton="true" tx="NONE" ><implementation>nc.bs.trans.servlet.TransServlet</implementation></component>   </public><private></private></module>

    1.4测试说明 

    在TransServlet.java的doAction方法中写一点逻辑代码,用来测试接口开发是否实现。在逻辑代码出打断点。

    需要Debug As重启中间件服务,启动完成后,访问接口http://127.0.0.1:8035/servlet/TransServlet测试,我的端口为8035,如果没有修改的话默认为80。

    在浏览器中访问接口,UAP中弹出提示框,点击确认进入debug



    进入debug模式其实就证明接口开发成功了,可以看到request、response对象的相关属性等,单步调试到我们写的逻辑代码处,可以看到success对象的值为test,然后为SUCCESS,接口开发实现。

    1.5项目整体结构图 


2.实现方式:interface+impl+upm

    2.1简单说明 

    就是接口及其实现类和upm文件实现的接口开发;

    2.2实现步骤 

    也是首先创建UAP项目,当然还有组件。

    在pu/src/public新建接口,包名:nc.itf.wstest.pu.xgang,接口名:IHelloWorld.java

    在pu/src/private新建接口,包名:nc.impl.wstest.pu.xgang,接口名:HelloWorldImpl.java

    在META-INF下新建upm文件,文件名Hello.upm

    2.3文件代码 

IHelloWorld.java代码如下(接口写个测试方法say):

package nc.itf.wstest.pu.xgang;public interface IHelloWorld {/** * say hello BY ZYN 170822 * @param name */public void hello(String name);}

HelloWorldImpl.java代码如下:

package nc.impl.wstest.pu.xgang;import nc.itf.wstest.pu.xgang.IHelloWorld;public class HelloWorldImpl implements IHelloWorld {@Overridepublic void hello(String name) {System.out.print("sad");}}

Hello.upm文件如下:

<?xml version='1.0' encoding='UTF-8'?><module name="pu"><public><component remote="true" singleton="true" tx="CMT">            <interface>nc.itf.wstest.pu.xgang.IHelloWorld</interface>            <implementation>nc.impl.wstest.pu.xgang.HelloWorldImpl</implementation>        </component></public><private></private></module>

    2.4发布Web Service 

    2.4.1 选中接口右键选择WS Tools - Publish Web Service发布Web Service 

    在弹出框内选择Hello.upm文件,Finish


    2.4.2勾选设置属性,填写组件名pu,此处测试接口开发,更多属性先不设置,这个不影响。根据接口查找对应的实现类。Finish 


    2.4.3选择NC speci,Finish 


    2.4.4此处测试接口开发,Web Service 的安全配置选项全不选,Finish 


    2.4.5Finish 


    2.4.6发布Web Service,发布成功后弹出提示框如下:


    2.5此时项目结构图如下 



    红色框内的wsdl文件是Web Service发布后生成的资源。此时接口开发已实现。重启中间件服务后,访问http://127.0.0.1:8035/uapws/service/,默认端口为80;可看到自己发布的ws。

    2.6导出补丁 

   2.6.1选中四个文件interface、impl、wsdl、upm,右键选择Export导出补丁。


   2.6.2填写补丁名及部分属性,名称自定义


    2.6.3Next 


    2.6.4选择补丁导出的存放路径,可先放在桌面,然后在复制到对应模块下。


    这里直接将补丁存放位置指定在pu(就是创建项目时指定的模块)的安装路径下。或者简单点直接把补丁导到桌面即可。


    2.6.5Next 


    2.6.6Finish 


    2.6.7补丁导入详细 

    1>如果放在桌面,直接在桌面找到patch补丁压缩包(在\module\pu下就去pu下找),解压压缩包后有六个文件,如下图


    2>其中有个replacement,把其他文件都放在该文件夹得对应路径下;

      1)把META-INF文件内容放在\replacement\modules\pu\META-INF下

      2)把nc文件内容放在\replacement\modules\pu\classes下

      3)把installpatch.xml、packmetadata.xml、readme.txt文件放在\replacement\modules\pu下

    准备好后如下图所示:


    3>把\replacement\modules\pu的整个pu文件夹的内容放在NCHome的对应\modules\pu下,如果存在重复文件,替换重复内容。

    这就完成了把补丁放在对应模块下。如下图:


    4>部署模块

    补丁打好后。进入NCHome下\bin\sysConfig.bat,双击该文件启动中间件,重新部署模块

    部署步骤(样图如下):选择部署 - 二阶段部署 - 勾选pu模块(项目最初创建时对应的模块) - 生成EJB - 部署EJB,部署成功后退出中间件。

    选择NCHome下的startup.bat文件,双击该文件重启服务。


    2.7重启中间件 

    重启中间件不要使用开发环境UAP,否则在访问接口时报错如下图:


    而是直接使用NCHome下的startup启动中间件服务。即非开发环境下重启中间件服务。双击NCHome下的startup.bat启动。


    重启完成后,访问路径http://127.0.01:8035/uapws/service/,效果如下图所示说明接口发布成功,注意端口默认是80,我的是8035(我的360加速球快要炸了@_@)



----------------------------------- THE END -----------------------------------


原创粉丝点击