Webservice接口开发

合集下载

NC63开发Webservice配置过程

NC63开发Webservice配置过程

UAPStudio配置开发Webservice过程一、在开发环境中,创建一个WebService首先将nc.uap.mde.wstools_2.0.2.jar(附件中有)放到UAPStudio下的UAP_STUDIO_6.31\Platform\plugins目录下。

在UAPStudio中新建一个工程,创建一个Webservice接口,和接口实现类:样例代码:接口:publicinterface IHelloWorld {public String sayHelloName(String userid, String name);}接口实现:publicclass HelloWorldImpl implements IHelloWorld {public String sayHelloName(String userid, String name) { String strSay = "Welcome "+ userid + " : "+ name + " to UFIDA !";return strSay;}}创建upm文件然后在接口上点击右键,选择“WS Tools”->“Public Web Service”,如图:下一步:选择事先创建后的upm文件下一步:填写“组件名称”(其他信息不需填写),点击“查找”按钮选择相应的接口实现类下一步:不需要修改,直接点下一步.在下面的页面中,必须将”是否要求认证授权”的勾去掉,然后点击”完成”.发布成功原来的upm文件,在发布后发生了变化,多出了webservice接口信息;打补丁(补丁须包含发布生成的wsdl文件,最新的upm,接口和接口实例类)(附件中有modules补丁包供参考)补丁中将生产的wsdl文件与接口文件放在同一目录;将补丁放入NChome中后再部署(部署操作此处不做过多说明)在开发环境中运行中间件:启动后,打开IE浏览器,在地址栏中输入:http://127.0.0.1/uapws/service 如果有如下显示,则表明Webservice部署正确:找到自己开发的接口,点击进入,并将IP地址记录下来,在soapUI(接口测试工具)界面中需要用它来完成“新建组件”的“服务”导入。

javawebservice接口调用实例

javawebservice接口调用实例

Java Web Service 是一种轻量级的、基于标准的 Web 协议进行通讯的服务。

它允许在异构系统之间进行交互,并支持跨评台。

在本篇文章中,我们将介绍如何在 Java 中使用 Web Service 接口进行调用的实例。

1. 确定 Web Service 接口我们需要确定要调用的 Web Service 接口。

通常情况下,我们可以通过 WSDL(Web Services Description Language)文档来获取接口的相关信息,包括接口的位置区域、方法名以及参数列表等。

2. 创建 Java 项目在 Eclipse 或者其他 Java 开发环境中,我们可以创建一个新的 Java 项目。

在项目中,我们需要引入相关的 Web Service 库,以便在代码中进行调用。

3. 生成客户端代码通过 WSDL 文档,我们可以使用工具来生成客户端代码。

这些工具通常包括 wsimport(用于生成客户端代码)等。

生成的客户端代码将包含接口的相关信息,以便我们在代码中进行调用。

4. 编写调用代码在生成客户端代码之后,我们可以编写调用代码来实现对 Web Service 接口的调用。

在代码中,我们需要首先创建对应的 WebService 客户端实例,然后通过该实例来调用接口中的方法。

5. 编译和运行完成代码编写之后,我们需要对代码进行编译,并运行相应的测试。

在运行的过程中,我们可以观察接口的调用情况,以及调用结果。

6. 处理异常情况在实际的调用过程中,我们经常会遇到各种异常情况,比如网络连接失败、接口调用超时等。

我们需要在代码中添加相应的异常处理逻辑,以保证程序的稳定性和可靠性。

通过以上步骤,我们可以实现在Java 中对Web Service 接口的调用。

通过这种方式,我们可以实现不同系统之间的数据交互,实现数据共享和系统集成。

我们也可以利用 Web Service 在不同评台之间实现数据的传输和处理,为企业的信息化建设提供更多的可能性。

WebService接口实例说明文档

WebService接口实例说明文档

WebService接口说明文档文档说明本文档主要讲述如何用C Sharp创建一个简单的Web Service接口,并使用Java调用这个Web Service接口。

准备工作系统环境:安装JDK1.6或更新版本开发工具:Microsoft Visual Studio 2012、MyEclipse 10.5、axis2-1.6.2C Sharp服务端1.首先,创建一个Web Service项目。

依次点击:文件—新建—项目,在弹出的新建项目窗口中选择Web下的 空 Web 应用程序。

如下图:2.接下来我们需要创建我们的Web Service接口实现文件。

鼠标右击我们的项目,依次点击:添加—新建项,在弹出窗口中选择Web 服务。

可修改新建项的文件名,注意文件名后缀后.asmx。

如下图:新建完成后我们的项目结构如下:3.打开我们新建的MyService.asmx下的MyService.asmx.cs文件,可以看到其中已经有默认的HelloWorld方法。

我们可以直接运行查看下运行的效果,效果如下图:点击HelloWorld,再点击调用可以看到页面返回:4.接下来我们完善我们的Web Service接口功能。

主要对Web Service接口进行参数类型的测试,文本型、布尔型、数值型、类(Class)等。

新增Add()等运算方法:新增strcat()连接字符串方法:新增GetBool()返回布尔值方法:新增GetTest()返回测试类,并新增Test类运行我们的项目,可以看到我们的结果如下图:点击add方法测试:输入add的参数i和j点击调用按钮,可以看到返回计算结果:5.到此为止我们C Sharp创建的Web Service程序完成。

接下来看Java如何调用我们的Web Service接口。

Java调用Web Service准备对于一个Web Service接口我们当前只知道访问的地址,我们如何用Java去访问接口呢?已知Web Service接口地址:http://localhost:11766/MyService.asmx?WSDLJava调用Web Service的方式有以下1.使用HttpClient2.使用Xfire3.使用axis2本文档示例选择的是axis2,首先到axis2网站下载axis2,网址:/axis2/java/core/download.cgi当前最新版本1.6.2。

webservice接口实现方式

webservice接口实现方式

webservice接口实现方式WebService接口实现方式Web服务(WebService)是一种基于Web的应用程序接口,允许不同应用程序通过网络相互通信。

WebService接口实现方式有多种,本文将介绍其中的几种常见方式。

1. SOAP(Simple Object Access Protocol)SOAP是一种基于XML的通信协议,用于在Web服务之间进行信息交换。

它使用HTTP作为传输协议,并使用XML格式对数据进行编码。

实现一个SOAP接口需要定义Web服务的方法、参数和返回值,并使用SOAP协议进行通信。

SOAP接口实现方式比较复杂,但具有较好的互操作性。

2. REST(Representational State Transfer)REST是一种轻量级的架构风格,用于设计分布式系统。

它使用HTTP作为传输协议,并使用URL来表示资源,通过HTTP方法(如GET、POST、PUT、DELETE)对资源进行操作。

实现一个REST接口只需要定义资源的URL和对应的HTTP方法即可,非常简单和灵活。

3. JSON-RPC(JSON Remote Procedure Call)JSON-RPC是一种基于JSON(JavaScript Object Notation)的远程过程调用协议。

它使用HTTP作为传输协议,并使用JSON格式对数据进行编码。

实现一个JSON-RPC接口需要定义Web服务的方法、参数和返回值,并使用HTTP POST请求进行调用。

JSON-RPC接口实现方式简单快捷,适用于前后端分离的应用。

4. XML-RPC(XML Remote Procedure Call)XML-RPC是一种基于XML的远程过程调用协议。

它使用HTTP作为传输协议,并使用XML格式对数据进行编码。

实现一个XML-RPC接口需要定义Web服务的方法、参数和返回值,并使用HTTP POST请求进行调用。

webservice 接口说明

webservice 接口说明

webservice 接口说明WebService 接口说明:WebService 是一种基于 Web 技术开发的软件系统,它使用标准的 HTTP 协议进行通信,通过网络提供各种功能的接口。

本文将介绍 WebService 接口的基本概念和使用方法。

1. 接口类型:WebService 接口分为两种类型:SOAP 和 REST。

SOAP(Simple Object Access Protocol)是一个基于 XML 的协议,用于在 Web 上进行分布式计算。

它使用 SOAP 消息进行通信,可以在不同的平台和语言之间进行交互。

而 REST (Representational State Transfer)是一种轻量级的 Web 服务架构风格,基于 HTTP 协议实现资源的表述和访问。

2. 接口描述语言:WebService 接口使用描述语言来定义接口和数据格式。

常用的描述语言有WSDL(Web Services Description Language)和 Swagger。

WSDL 是一种 XML 格式的描述语言,用于描述 WebService 接口的操作、消息和数据类型。

Swagger 是一种由 JSON 或 YAML 编写的开源工具,可以生成易于阅读的接口文档。

3. 接口功能:WebService 接口提供了各种功能,包括数据查询、修改、上传、下载等。

通过调用接口,可以获取或提交数据,实现不同系统之间的数据交互。

接口功能由具体的接口方法来实现,方法的参数和返回值通常使用 XML 或 JSON 格式进行传输。

4. 接口调用:WebService 接口的调用可以使用各种编程语言和开发工具。

开发者可以根据接口描述文档,使用相应的语言生成客户端代码或使用现有的 SOAP 或 REST 客户端库进行接口调用。

在调用接口时,需要提供相应的参数,并按照接口要求进行数据格式转换和加密等操作。

5. 接口安全:WebService 接口的安全性非常重要,需要采取一些安全措施来保护接口的访问和数据的传输。

webservice接口实例

webservice接口实例

webservice接口实例WebService接口实例是一种在不同的操作系统和编程语言之间进行通信的技术,它通过利用XML(可扩展标记语言)来实现跨平台的数据交换。

不同的Web应用程序可以通过SOAP(简单对象访问协议)协议来在网络中发送和接收消息。

下面,我们将通过以下步骤来介绍如何使用WebService接口。

第一步:创建Web服务首先,我们需要在.NET环境中创建一个Web服务应用程序。

使用Visual Studio中的文件菜单选项,在应用程序中添加一个新的Web服务。

我们可以通过添加Web服务引用来使用Web服务。

在Visual Studio中选中“添加引用”,选择“Web引用”,并输入WebService的URL链接。

此时,您将可以通过“命名空间”引用Web服务。

第二步:添加Web服务引用在Visual Studio中,通过添加Web服务引用来使用Web服务。

选中“添加引用”,选择“Web引用”,并输入WebService的URL链接。

此时,您将可以通过“命名空间”引用Web服务。

第三步:实现Web服务方法在Web服务应用程序中,我们必须实现Web服务方法,该方法将处理请求并返回数据。

在方法中,必须定义相关的参数,包括:请求参数、响应参数及返回值。

为了调用Web服务方法,必须发送一条请求并等待Web服务响应。

第四步:测试Web服务在Visual Studio中,可以通过单元测试工具来测试Web服务是否正常运行。

您可以创建一个单元测试项目,以测试Web服务是否返回与预期的结果相同的结果。

第五步:使用WebService接口通过添加Web服务引用,并调用Web服务方法,可以在应用程序中使用WebService接口。

通过使用相关的命名空间,Web服务中的方法可以在应用程序中 freely地调用。

综上所述,在使用WebService接口时,我们需要创建一个Web 服务应用程序,添加Web服务引用,实现Web服务方法,测试Web服务并最终在应用程序中使用WebService接口。

NC系统Webservice接口开发培训

NC系统Webservice接口开发培训

员档案同步的Webservice接口服务,其他系统调用该接口进行人
员档案查询同步。 两系统间进行数据的更新。比如结算系统进行业务结算后,需要向 NC系统单据发送一个结算状态。那么就可以由NC系统提供一个单 据的状态更新Webservice接口服务,结算系统调用该接口(例如 :传入参数为单据号、已结算)进行NC单据的状态更新。 当然,其他业务系统也可以发布Webservice接口服务,NC系统来 调用。
Webservice接口地址,如图:
4.运行soapUI工具,进行后续测试,见下文!
测试工具 – soapUI使用
1.在Project上点击右键,选择“New soapUI Project”,如图:
2.在WSDL框中,录入测试地址 http://127.0.0.1/uapws/service/helloworld?wsdl。最后点击OK,如图:
Webservice开发流程- 步骤7
下一步:在Eclipse中运行NC中间件。
Webservice开发流程- 步骤8
启动后,打开IE,在地址栏中输入:http://127.0.0.1/uapws/service 如果有如下显示,则表明Webservice部署正确:
2.制作补丁
Webservice制作补丁- 步骤1
NC Webservice开发
1.开发流程
所需jar包
需要将nc.uap.mde.wstools_1.0.3.jar放到Eclipse下的plugins目录下。 该jar包放于“相关文档\需要的jar包”目录下
Webservice开发流程 - 步骤1
打开Eclipse,新建一个工程,创建一个Webservice接口类和实现类,如下例: 接口样例: public interface IHelloWorld {

NC系统Webservice接口开发培训

NC系统Webservice接口开发培训
使用Webservice接口,可以在程序中进行业务逻辑的编写和运算。 Webservice向外发布的数据格式可以是xml格式、String等,根据
业务要求运用起来非常灵活。
Webservice服务的适用范围
多系统间的数据同步。比如以NC系统的人员档案为主数据,其他 外系统与NC系统人员档案进行同步,就可以由NC系统向外发布人
调用接口地址为Wsdl结尾的代码
如果是以 http://127.0.0.1/uapws/service/helloworld?wsdl 这种形式发 布的Webservice服务,则使用如下代码样例进行调用:
//webservice服务访问地址 String webserviceURL = "http://127.0.0.1/uapws/service/ISyncDataServer"; Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(new .URL(webserviceURL)); //调用的方法名 call.setOperationName("getAllCorpInfo"); //设置输入参数类型(不能写成String作为参数,否则会提示错误) call.addParameter(new QName("datasource"), org.apache.axis.encoding.XMLType.XSD_STRING,
Webservice开发流程- 步骤7
下一步:在Eclipse中运行NC中间件。
Webservice开发流程- 步骤8
启动后,打开IE,在地址栏中输入:http://127.0.0.1/uapws/service 如果有如下显示,则表明Webservice部署正确:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Webservice接口开发Author:Geloin目录1 准备工作 (1)2 服务器端 (1)2.1 主程序 (1)2.2 services.xml (2)2.3 传值方式 (3)2.4 打包 (4)2.5 发布 (6)3 客户端 (8)3.1 导入包 (8)3.2 示例代码 (8)3.3 代码解析 (10)3.3.1 设定服务器地址 (10)3.3.2 设定action (10)3.3.3 设定要调用的方法名 (11)3.3.4 设定客户端控件 (11)3.3.5 设定命名空间 (11)3.3.6 设定需要传送的值 (11)3.3.7 设定返回数据类型 (11)3.3.8 获取返回结果 (12)1准备工作至/axis2/下载axis2的bin及war包,分别解压之,在环境变量中添加AXIS2_HOM,将axis2.war放置到tomcat/webapps目录下,启动tomcat,用浏览器打开http://localhost:8080/axis2,如下图所示:2服务器端2.1主程序服务器端可以是任何一个程序,例如下面的例子:public class Test {// 此程序返回一个字符串public String test1(String arg) {return arg + “测试”;}// 此程序返回一个一维数组public String[] test2(String arg) {String[] result = new String[]{arg};return result;}// 当返回值为多维数组时,将之转化为一维数组返回public String[] test3(String arg) {String[] result = new String[]{“测试,” + arg};return result;}// 当返回值为其它类型,例如自定义类型、Map、List等时,将其序列化(冷冻或腌成咸菜)后返回public byte[] test4(String arg) {Map<Object, Object> map = new HashMap<Object, Object>();map.put(“测试”, arg);java.io.ByteArrayOutputStream baos = new ByteArrayOutputStream();ObjectOutputStream oos = new ObjectOutputStream(baos);oos.writeObject(map);return baos.toByteArray();}}2.2s ervices.xml需要在根目录下建立META-INF文件夹,文件夹下放置MANIFEST.MF和services.xml文件,最好自己写好MANIFEST.MF文件,不然导出的时候可能会出错。

services.xml文件的内容如下:<?xml version="1.0" encoding="UTF-8"?><serviceGroup><service name="testService"><!—服务名,在客户端调用时需要用到--> <!—你所写的服务器端程序,包括包名--><parameter name="ServiceClass">test.Test</parameter><!—方法名--><operation name="test1"><!—传值方式--><messageReceiverclass="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /></operation><operation name="test2"><messageReceiverclass="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /></operation><operation name="test3"><messageReceiverclass="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /></operation><operation name="test4"><messageReceiverclass="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /></operation></service></serviceGroup>2.3传值方式上文中提及到传值方式,即:<messageReceiverclass="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />片段,在AXIS2中有两种传值方式,分别为:org.apache.axis2.rpc.receivers.RPCMessageReceiver:即需要客户端传参数过来,又返回值。

org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver:需要客户端传参数过来,但不返回值。

2.4打包在Eclipse下右键点击项目名,Export..,JAR file,在JAR File Specification进行如下勾选:注意,文件名的后缀为aar,Next后进行如下勾选:Next后进行如下勾选:注意,请写好MANIFEST.MF文件,如下所示:Manifest-Version: 1.0Class-Path: lib/mysql-connector-java-5.1.12-bin.jar2.5发布用浏览器打开http://localhost:8080/axis2,如下图所示:点击Administration,登录,用户名为admin,密码为axis2,如下图所示:点击upload Service,如下图所示:按照提示上传aar文件即可,其中,aar文件是2.4中打包时得到的文件。

3客户端3.1导入包需要使用的包如下图所示:3.2示例代码import的包如下图所示:代码如下图所示:// 服务器地址String serviceAddress = "http://localhost:8888/axis2/services/testService";// 服务器对应的action,如果不知道的话随便写,系统运行时会提示你的String action = "";// 方法名String methodName = "test1";// 客户端控件RPCServiceClient serviceClient = new RPCServiceClient();Options options = serviceClient.getOptions();EndpointReference targetEPR = new EndpointReference(serviceAddress); options.setTo(targetEPR);// 命名空间QName qName = new QName(action, methodName);// 需要传递给服务器的值Object[] values = new Object[]{license};// 返回值的类型,基本类型为Class<?>[] returnType = new Class[]{String.class};// 返回结果Object[] result = serviceClient.invokeBlocking(qName, values, returnType);return result[0].toString();3.3代码解析3.3.1设定服务器地址首先,你需要设定webservice服务器的地址,即:String serviceAddress = "http://localhost:8888/axis2/services/testService";登际http://localhost:8080/axis2,点击Services,如下图所示:如上图所示,会列出所有webservice服务的地址及能够使用的方法。

3.3.2设定action如以下代码所示:String action = "";action的值可以随便写,如有错误,程序在执行过程中会给予提示。

3.3.3设定要调用的方法名如以下代码所示:String methodName = "test1";这里指的是要调用服务器上的哪个方法。

3.3.4设定客户端控件如以下代码所示:RPCServiceClient serviceClient = new RPCServiceClient();Options options = serviceClient.getOptions();EndpointReference targetEPR = new EndpointReference(serviceAddress);options.setTo(targetEPR);这一部分为公用代码,直接拷贝即可。

3.3.5设定命名空间如以下代码所示:QName qName = new QName(action, methodName);这一部分为公用代码,直接拷贝即可。

3.3.6设定需要传送的值如以下代码所示:Object[] values = new Object[]{license};这里设定的是要传递给服务器的参数。

3.3.7设定返回数据类型如以下代码所示:Class<?>[] returnType = new Class[]{String.class};这里设定的是服务器返回给客户端的值的类型,分为以下几种:(1)简单类型的参数,如String、int、long、double等待,使用以下代码:Class<?>[] returnType = new Class[]{String.class };Class<?>[] returnType = new Class[]{Integer.class };Class<?>[] returnType = new Class[]{Long.class};(2)一维数组和二维数组,使用以下代码:Class<?>[] returnType = new Class[]{String[].class};(3)复杂数据类型,即通过序列化的数据类型,使用以下代码:Class<?>[] returnType = new Class[]{byte[].class};3.3.8获取返回结果如以下代码所示:Object[] result = serviceClient.invokeBlocking(qName, values, returnType);return result[0].toString();获取服务器返回的结果,有以下几种情况:(1)简单数据类型,使用以下代码:Object[] result = serviceClient.invokeBlocking(qName, values, returnType);String result = "";if (null != obj && obj.length > 0) {result = obj[0].toString();} else {result = null;}(2)一维数组,使用以下代码:Object[] obj = serviceClient.invokeBlocking(opQName, values, returnType);String[] result = null;if (null != obj && obj.length > 0) {result = (String[]) obj[0];} else {result = null;}(3)多维数组,使用以下代码:Object[] obj = serviceClient.invokeBlocking(qName, values, returnType); String[] result = null;if (null != obj && obj.length > 0) {result = (String[]) obj[0];// 分解多维数组for (String s : result) {String[] array = s.split(",");for (String ss : array) {System.out.print("<" + ss + "> ");}System.out.println();}} else {result = null;}(4)复杂对象,传递序列化后的值,需要解冻(回鲜):Object[] obj = serviceClient.invokeBlocking(qName, values, returnType); Map<Object, Object> result = null;if (null != obj && obj.length > 0) {byte[] buffer = (byte[]) obj[0];ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(buffer));result = (Map<Object, Object>) ois.readObject();} else {result = null;}。

相关文档
最新文档