使用axis自动生成webservice客户端代码

使用axis自动生成webservice客户端代码
使用axis自动生成webservice客户端代码

利用AXIS生成客户端文件,使得开发webservice更加简单,以下是我的个人代码,

工具:

Myeclipse7.0,axis1.4,tomcat5.5,jdk1.5

一、下载axis的jar包,我的是axis-bin-1_4.zip包,解压后有axis的lib目录,一会儿我

们要用,

二、在myeclip se中创建自己的webservice工程,这个在的文库里有,

三、在C盘目录下创建一个批处理文件,我的名字是wsdltojava.bat,内容如下:

set Axis_Lib=E:\jar\axis\asixTool\axis-bin-1_4\axis-1_4\lib

set Java_Cmd=java -

set Axis_Servlet=

%Java_Cmd% -u %Axis_Servlet%

备注:红色字体我的axis的目录,也就是刚才我解压出来的axis,

蓝色是我的webservice的访问地址,其他的不用处理,

然后双击这个文件,产生以下几个文件:

(1)、目录是:C:\localhost\myAxis\services\HelloWorld

(2)、

四、将这四个文件拷贝到你的客户端,创建客户端

运行即可

附录代码:

服务端

HelloWorld.java

package ;

public class HelloWorld {

public String hello(){

return"Hello "+"aaaaaaaaaaaaaaaaaa";

}

}

客户端(通过刚才命令生成的四个文件)

HelloWorld.java

/**

* HelloWorld.java

*

* This file was auto-generated from WSDL

* by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.

*/

package ;

public interface HelloWorld extends {

public hello() throws ;

}

HelloWorldService.java

/**

* HelloWorldService.java

*

* This file was auto-generated from WSDL

* by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. */

package ;

public interface HelloWorldService extends {

public getHelloWorldAddress();

public getHelloWorld() throws ;

public getHelloWorld( portAddress) throws ;

}

HelloWorldServiceLocator.java

/**

* HelloWorldServiceLocator.java

*

* This file was auto-generated from WSDL

* by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. */

package ;

public class HelloWorldServiceLocator extends implements { public HelloWorldServiceLocator() {

}

public HelloWorldServiceLocator( config) {

super(config);

}

public HelloWorldServiceLocator( wsdlLoc, sName) throws { super(wsdlLoc, sName);

}

// Use to get a proxy class for HelloWorld

private HelloWorld_address = "";

public getHelloWorldAddress() {

return HelloWorld_address;

}

// The WSDD service name defaults to the port name.

private HelloWorldWSDDServiceName = "HelloWorld";

public getHelloWorldWSDDServiceName() {

return HelloWorldWSDDServiceName;

}

public void setHelloWorldWSDDServiceName( name) {

HelloWorldWSDDServiceName = name;

}

public getHelloWorld() throws {

endpoint;

try {

endpoint = new ;

}

catch ( e) {

throw new ;

}

return getHelloWorld(endpoint);

}

public getHelloWorld( portAddress) throws {

try {

_stub = new , this);

_stub.setPortName(getHelloWorldWSDDServiceName());

return _stub;

}

catch ( e) {

return null;

}

}

public void setHelloWorldEndpointAddress( address) {

HelloWorld_address = address;

}

/**

* For the given interface, get the stub implementation.

* If this service has no port for the given interface,

* then ServiceException is thrown.

*/

public getPort(Class serviceEndpointInterface) throws {

try {

if ( {

_stub = new , this);

_stub.setPortName(getHelloWorldWSDDServiceName());

return _stub;

}

}

catch ( t) {

throw new ;

}

throw new "There is no stub implementation for the interface: " + (serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName()));

}

/**

* For the given interface, get the stub implementation.

* If this service has no port for the given interface,

* then ServiceException is thrown.

*/

public getPort( portName, Class serviceEndpointInterface) throws {

if (portName == null) {

return getPort(serviceEndpointInterface);

手机网络游戏 服务器端配置 客户端发布与运行 配置源程序

手机网络游戏使用说明书 配置源程序 发布与运行 1.服务器端配置 (1)将光盘\TM\10\XiangQiServer文件夹拷贝到Eclipse的工作空间中。 (2)启动Eclipse。 (3)选择“文件”/“导入”菜单项,展开“常规”节点,选择“现有项目到工作空间中”子节点,如图1.1所示。 图1.1 “导入”窗口 (4)单击【下一步】按钮,单击【浏览】按钮,选择程序所在目录,然后勾选“将项目复制到工作空间中”复选框,如图1.2所示。

图1.2 “导入”窗口 (5)单击【完成】按钮。 (7)参照第7章文档中的7.3.5节中的第5小节,为MyEclipse配置Tomcat服务器。 (8)单击工具栏的“”按钮,将弹出如图1.3所示的对话框。这个对话框是项目发布对话框,在对话框的“Project”下拉选择框中选择本系统的项目名称“XiangQiServer”,单击Add按钮进行项目发布的设置。 图1.3 MyEclipse项目发布对话框 (9)在弹出如图1.4所示的对话框中,选择“Server”下拉选择框中的“Tomcat 5”服务器,单击“完成”按钮程序将自动发布到服务器中。如果需要重新发布项目,可以单击Redeploy按钮。

图1.4 New Deployment (10)单击工具栏中按钮右侧的小箭头,在弹出的菜单中选择“Tomcat 5”/“Start”菜单项,如图1.5所示。这样可以在MyEclipse中启动Web服务器。 图1.5 服务器运行菜单 2.客户端发布与运行 (1)将光盘\TM\10\xiangqi文件夹拷贝到Eclipse的工作空间中。 (2)启动Eclipse。 (3)选择“文件”/“导入”菜单项,展开“常规”节点,选择“现有项目到工作空间中”子节点,如图1.6所示。 图1.6 “导入”窗口 (4)单击【下一步】按钮,单击【浏览】按钮,选择程序所在目录,然后勾选“将项目复制到工作空间中”复选框,如图1.7所示。

CXF WebService中传递复杂对象(List、Map、Array)

CXF WebService中传递复杂对象 前面一篇文章介绍的都是传递简单的字符串,现在开始介绍传递复杂类型的对象。如JavaBean、Array、List、Map等。 如有不正确之处,请各位给予指出! 1、首先看看服务器端的代码所需要的JavaBean对象 Java代码 1.package com.wy.object.entry; 2. 3.import java.io.Serializable; 4. 5./** 6.* User Entity 7.* @author Administrator 8.* 9.*/ 10.public class User implements Serializable { 11. 12.private static final long serialVersionUID = 1L; 13. 14.private int id; 15.private String name; 16.private String email; 17.private String address; 18. 19.public int getId() { 20.return id; 21.} 22. 23.public void setId(int id) { 24.this.id = id; 25.} 26. 27.public String getName() { 28.return name; 29.} 30. 31.public void setName(String name) { https://www.360docs.net/doc/c34580964.html, = name; 33.}

34. 35.public String getEmail() { 36.return email; 37.} 38. 39.public void setEmail(String email) { 40.this.email = email; 41.} 42. 43.public String getAddress() { 44.return address; 45.} 46. 47.public void setAddress(String address) { 48.this.address = address; 49.} 50. 51.@Override 52.public String toString() { 53. 54.return this.id + " - " + https://www.360docs.net/doc/c34580964.html, + " - " + this.address + " - " 55.+ this.email; 56. 57.} 58.} 下面的是集合传递Users,CXF直接传递集合对象会出现异常,用一个对象包装下就Ok了,不知道是什么原因。 Java代码 1.package com.wy.object; 2. 3.import java.util.HashMap; 4.import java.util.List; 5. 6.import https://www.360docs.net/doc/c34580964.html,er; 7. 8./** 9.* CXF直接传递集合对象会出现异常,用一个对象包装下就Ok了,不知 道是什么原因? 10.* 11.* @author Administrator 12.* 13.*/

EBS中发布WEBSERVICE接口的方法

在Oracle EBS二次开发中,PL/SQL程序是开发人员使用频率最高的开发语言,同时也是大家最容易掌握的工具之一了,而我们也很希望将自己编写的PL/SQL 程序发布为Web服务来提供给客户端程序使用,同时也可以实现和外围系统的集成,有了irep_parser这个工具,我们就可以将自己编写的PL/SQL 程序发布到Oracle Integration Repositoy中。Oracle Integration Repositoy中集成接口的来源都是Oracle,客户化的程序发布上去的为Custom: 下面描述如何将PL/SQL程序接口发布到Oracle Integration Repositoy中作为集成接口供第三方程序集成调用 一、给EBS系统打补丁 参考如下安装文档: 安装文档.docx 二、添加客户化应用到Product Family 客户化应用设置好之后,它没有归属于任何的产品家族,如我的客户化应用CUX,因此发布在客户化应用下的集成接口在Oracle Integration Repositoy中无法方便的查看,如下图:

如果客户化集成接口是组织到自己的应用下就需要先注册一个产品家族,下面将CUX Developer(CUX) 应用注册到CUX Developer(cux_pf)这个产品家族下作为例子进行演示: 1,添加产品家族 CUX Developer(cux_pf) --添加产品家族 begin -- Call the procedure ad_pa_insert_package.insert_ad_pm_product_info(x_product_abbreviation => 'cux_pf', x_pseudo_product_flag => 'N', x_product_family_flag => 'Y', x_application_short_name => NULL, x_product_name => 'CUX Developer', x_product_family_abbreviation => NULL, x_product_family_name => NULL, x_aru_update_date => to_char(SYSDATE,'YYYY-MM-DD HH24:MI:SS'), x_currdate => to_char(SYSDATE,'YYYY-MM-DD HH24:MI:SS'), x_last_updated_by => -1, x_created_by => -1); COMMIT; end; 2,注册CUX Developer(CUX)应用到产品家族中

tomcat8配置HTTPS,简单webservice客户端调用

Tomat8配置HTTPS 一.环境: Jdk1.8 Tomcat8.0.22 二.步骤: 1,创建证书: 首先建立目录,例如:d:/keys 然后利用jdk的keytool工具生成证书 d:\keys>keytool -genkey -alias wsria -keyalg RSA -keystore d:/keys/wsriakey.keystore

具体的输入项图片中都有说明,有一点我要解释一下;在输入完密码后提示输入域名是我输入的是https://www.360docs.net/doc/c34580964.html,,其实这个域名是不存在的,但是我为了演示所以虚拟了这个域名,技巧在于修改 C:\Windows\System32\drivers\etc\hosts 添加内容如下: 127.0.0.1 https://www.360docs.net/doc/c34580964.html, 这样在访问https://www.360docs.net/doc/c34580964.html,的时候其实是访问的127.0.0.1也就是本机 严重提醒:提示输入域名的时候不能输入IP地址 2,导出证书: d:\keys>keytool -export -file d:/keys/wsria.crt -alias wsria -keystore d:/keys/wsriakey.keystore

3,为客户端的JVM导入证书(目前没觉得这步有什么用)d:\keys>keytool -import -alias kk -keystore "D:\Program Files\Java\jdk1.8.0_45\jre\lib\security\cacerts" -file D:/keys/wsria.crt 此处输入的口令是:changeit 4、应用证书到Web服务器-Tomcat 打开tomcat目录的conf/server.xml文件,开启83和87行的注释代码,并设置keystoreFile、keystorePass修改结果如下:注意大小写

基于spring+cxf实现用户文件传输的webservice

基于spring+cxf实现用户文件传输的webservice 1 引言 在EDI系统中,用户数量较多,并且信息化水平差距较大,所以对报文的收发方式具有多样化的需求。相对其他访问方式而言,http(s)的访问在防火墙限制、安全性等方面都有较好表现。因此,有相当部分用户提出通过webservice发送报文的需求。本文介绍了如何采用cxf 结合spring框架实现具有文件上传和相关查询功能的webservice,以便其在使用.net或其他框架开发的MIS系统中能够自动生成报文并上传。同时,该webservice还提供了用户基本身份验证功能,对访问请求进行限制。 Apache CXF 是一个开源的 Services 框架,CXF 帮助您利用 Frontend 编程 API 来构建和开发 Services ,像 JAX-WS 。这些 Services 可以支持多种协议,比如:SOAP、XML/HTTP、RESTful HTTP 或者 CORBA ,并且可以在多种传输协议上运行,比如:HTTP、JMS 或者 JBI,CXF 大大简化了 Services 的创建,同时它继承了 XFire 传统,一样可以天然地和 Spring 进行无缝集成。 2.功能分析 (1)该webservice需要提供报文上传到服务器上的基本功能。 (2)用户可以查询已经发送的报文历史信息列表,包括报文名称、报文大小和发送时间。 (3)由于不是开放服务,所以还需要对用户身份进行基本认证。 3.服务构建 (1)定义要提供的服务接口 首先要定义webservice输入输出的数据类型,主要包括报文名称、报文类型、报文发送时间以及处理文件流的DataHandler属性。代码片段如下:

Webservice接口开发

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准备工作 至https://www.360docs.net/doc/c34580964.html,/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;

webservice四种发布方式及客户端调用

WebService 四种发布方式总结 Author:yczhang 1.CXF方式 CXF与spring搭建webservice是目前最流行的方式,但是传闻cxf与jdk1.5有些不兼容,我没有遇到过,我遇到的问题是cxf与was6.1.1不兼容,表现在cxf必须的jar包“wsdl4j-1.6.2.jar”报错,报的错为:https://www.360docs.net/doc/c34580964.html,ng.IncompatibleClassChangeError,明显的jar包不兼容问题,很是头痛,后来查找资料找到解决办法是,将上述jar包新建一个was共享库,可以解决,但是客户周经理不想用此种方式,因为需要修改was,于是改用了axis2方式,下文会介绍。该问题在此处做个记录,以后使用cxf与was的时候需要注意!!! 使用cxf+spring搭建WebService: 第一步,添加jar包。此处需要注意,不同环境(tomcat、was)jar也不一定相同,例如我本地cxf+spring只需要如下jar包: 而泰康的was环境则需要如下jar包:

明显的多了很多,原因应该是服务器jar包池的不同。根据错误提示缺什么补什么就可以了,注意jar包勿重复。 第二步,配置web.xml文件,如下(重要的地方已标记): contextConfigLocation classpath:/applicationContext.xml org.springframework.web.context.ContextLoaderListener encodingFilter org.springframework.web.filter.CharacterEncodingFil ter encoding UTF-8 encodingFilter /* CXFServlet org.apache.cxf.transport.servlet.CXFServlet 1 CXFServlet /webservice/* 上述标记的地方,第一处是spring配置文件路径;第二出是wsdl地址内容;

客户端程序源代码

#include #include #include #include #include #define rec_length 20 main(int argc, char **argv ) { // structure defined for request as a client struct hostent *hp1; struct sockaddr_in sin1; struct servent *sp1; char sbuf[50]; int ss,spid; char *sservice,*sdest; // structure defined for request as a server struct sockaddr_in sin; struct servent *sp; int s,ns,pid; char buf[50]; char *service; // test the environment parameter: lservice, dservice, server_name if(argc==4){ service=argv[1];sservice=argv[2]; sdest=argv[3];} else { fprintf(stderr,"Parameter assigned Error!\nUsage:\n"); fprintf(stderr,"\t%s lservice dservice server_name!\n",argv[0]); fprintf(stderr,"Note: server_name is defined in file /etc/hosts\n"); fprintf(stderr,"and: lservice dservice are defined in file /etc/services\n"); exit(-1); } if((sp=getservbyname(service,"tcp"))==NULL){ fprintf(stderr,"Error: getservbyname"); exit(-5); } if((s=socket(AF_INET,SOCK_STREAM,0))==-1){ fprintf(stderr,"Error: socket create"); exit(-6); } bzero(&sin,sizeof(sin)); sin.sin_port=sp->s_port; if(bind(s,&sin,sizeof(sin))==-1){ fprintf(stderr,"Error: bind"); close(s); exit(-6); }

CXF实现WebService

使用Apache CXF实现Web Service 1.Web service的概念 什么是Web Service呢?从表面上看,Web Service就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web调用来实现某个功能的应用程序。从深层次上看,Web Service是一种新的Web应用程序分支,它们是自包含、自描述、模块化的应用,可以在网络(通常为Web)中被描述、发布、查找以及通过Web来调用。一旦部署以后,其他Web Service应用程序可以发现并调用它部署的服务。Web Service是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作。它可以使用标准的互联网协议,像超文本传输协议HTTP和XML,将功能体现在互联网和企业内部网上。Web Service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用你喜欢的任何语言,在你喜欢的任何平台上写Web Service。Web Service是构建互联网分布式系统的基本部件。"网络服务"(Web Service)的本质,就是通过网络调用其他网站的资源。 举例来说,写一个“四川大地震图片墙”,它能动态显示关于四川地震的最新图片。但是,所有的图片都不是储存在自己的服务器上,而是来自https://www.360docs.net/doc/c34580964.html,。只需要发出一个动态请求,要求https://www.360docs.net/doc/c34580964.html,向自己提供图片。这种情况下,https://www.360docs.net/doc/c34580964.html,提供的就是一种Web service。如果把图片都存放在本地服务器,不调用https://www.360docs.net/doc/c34580964.html,,那么我就是在使用“本地服务”。 所以,Web service让你的网站可以使用其他网站的资源,比如在网页上显示天气、地图、twitter上的最新动态等等。 2.Web Service架构和云 如果一个软件的主要部分采用了“网络服务”,即它把存储或计算环节“外包”给其他网站了,那么我们就说这个软件属于Web Service架构。 Web Service架构的基本思想,就是尽量把非核心功能交给其他人去做,自己全力开发核心功能。比如,如果你要开发一个相册软件,完全可以使用Flickr的网络服务,把相片都储存到它上面,你只要全力做好相册本身就可以了。总体上看,凡是不属于你核心竞争力的功能,都应该把它“外包”出去。 最近很红的“云计算”(cloud computing)或者“云服务”(cloud services),实际上就是Web Service的同义词,不过更形象一些罢了。它们不说你把事情交给其他计算机去做,而说你把事情交给“云”去做。 3.Web Service的优势 Web Servcie最主要的优点是,使用不同程序和在不同系统平台上开发出来的程序,都可以相互通信。SOAP作为Web Service的基本通信协议,简单,投入和使用的代价也很小。

SAP开发webservice接口教程

SAP开发webservice接口教程 在client=100中进行开发: 1.创建RFC函数 SE80,在函数组下,右击->创建,创建函数模块,填写函数模块名称及描述。 2.函数属性标签页,选择“远程启用的模块”,其余默认不变。 3.函数导入标签页,需要添加调用时传入的参数(表),“传递值”需勾选。 表类型:ZSHR_EMPLOYEER_T (需要自己创建) 行类型:ZSHR_EMPLOYEER (需要自己创建)

4.函数导出标签页,需要添加调用返回的参数(表),“传递值”需勾选。 表类型:ZSHR_EMPLOYEER_OUT_T (需要自己创建) 行类型:ZSHR_EMPLOYEER_OUT (需要自己创建) 5.函数源代码标签页,需要写代码实现把传入的数据保存在透明表中。 至此,函数创建完成。 6.创建Web Services 右击包名创建企业服务,进入如下页面,选择“Service Provider”,因为我们是服务提供者,点击“继续”。

7.选择“Existing ABAP Object (Inside Out)”,点击“继续”。 8.给服务起名,并填写描述,点击“继续”

9.选择“Function Module”,点击“继续”。 10.填写我们第一步创建的函数,并勾选“Map Name”,点击“继续”。 11.SOAP Appl默认不变,Profie下拉框选择第四个选择,即不进行权限认证。点击“继续”。 12.填写对于的包和请求,点击“继续”。 下一步,直接点击“完成”。服务创建成功。

13.配置SOA 使用T-CODE:soamanager,进入web页面的SOA管理(client=100)。 14.点击“简化Web服务配置”,进入如下设置页面,点击“执行”,从列表中找到自己创建的 服务,勾选第一个checkbox,User Name/Password(basic),点击列表左上角的“保存”,之后页面右上角的“返回”按钮,返回首页。 这一步设置,代表我们只设置用户名/密码的调用认证方式。

人脸识别程序源代码

1.利用OpenCV进行人脸检测 人脸检测程序主要完成3部分功能,即加载分类器、加载待检测图象以及检测并标示。本程序使用OpenCV中提供的“haarcascade_frontalface_alt.xml”文件存储的目标检测分类,用cvLoad函数载入后,进行强制类型转换。OpenCV中提供的用于检测图像中目标的函数是cvHaarDetectObjects,该函数使用指针对某目标物体(如人脸)训练的级联分类器在图象中找到包含目标物体的矩形区域,并将这些区域作为一序列的矩形框返回。分类器在使用后需要被显式释放,所用的函数为cvReleaseHaarClassifierCascade。这些函数原型请参看有关OpenCV手册。 2.程序实现 1)新建一个Visual C++ MFC项目,取名为“FaceDetection”,选择应用程序类型为“单文档”。将菜单中多余的项去掉,并添加一项“人脸检测”,其ID为“ID_FaceDetected”,并生成该菜单项的消息映射函数。 2)在“FaceDetectionView.h”头文件中添加以下灰底色部分程序代码:

3)在“FaceDetectionView.cpp”文件中添加以下灰底色部分程序代码:

需要注意的是,本程序运行时应将分类器文件置于程序目录下,如果运行的是生成的E XE文件,则应将分类器文件与该EXE文件放在同一个目录下。 三、程序运行结果 运行该程序,选择人脸检测菜单项,弹出文件打开对话框,选择要检测的图像文件,程序就会将检测到的人脸用圆圈标示出来,如图3所示。本程序能顺利检测出大部分人脸,但由于光照、遮挡和倾斜等原因,部分人脸不能正确检测,另外,也有一些非人脸部分由于具有人脸的某些特征,也被当成了人脸,这些都是本程序需要改进的部分。

通过CXF开发webService接口(soap协议、maven项目)

1. 引入cxf的jar包 pom文件里面直接增加依赖 < dependency> junit junit 4.11 test org.springframework spring- webmvc 4.0.0.RELEASE org.apache.cxf apache-cxf 2.4.3 pom 2. 配置web.xml文件 < web-app xmlns= "https://www.360docs.net/doc/c34580964.html,/xml/ns/javaee" xmlns:xsi= "https://www.360docs.net/doc/c34580964.html,/2001/XMLSchema-instance" xsi:schemaLocation= "https://www.360docs.net/doc/c34580964.html,/xml/ns/javaee https://www.360docs.net/doc/c34580964.html,/xml/ns/javaee/web-app_3_1.xsd" version= "3.1" > < display-name >Archetype Created Web Application < context-param > contextConfigLocation classpath:config/spring/metadata WebService-spring.xml org.springframework.web.conte xt.ContextLoaderListener

c#.net动态调用webservice的三种方式

多数时候我们通过 "添加 Web 引用..." 创建客户端代理类的方式调用WebService,但在某些情况下我们可能需要在程序运行期间动态调用一个未知的服务。在 .NET Framework 的命名空间中有我们需要的东西。 具体步骤: 1. 从目标 URL 下载 WSDL 数据。 2. 使用 ServiceDescription 创建和格式化 WSDL 文档文件。 3. 使用 ServiceDescriptionImporter 创建客户端代理类。 4. 使用 CodeDom 动态创建客户端代理类程序集。 5. 利用反射调用相关 WebService 方法。 上述步骤需要引用如下四个名称空间: using 动态调用 WebService 客户端动态调用代码 using ; using ; using ; using ; using using using using using

使用 WebClient 下载 WSDL 信息。 WebClient web = new WebClient(); Stream stream = (""); 创建和格式化 WSDL 文档。 ServiceDescription description = (stream); 创建客户端代理代理类。 ServiceDescriptionImporter importer = new ServiceDescriptionImporter(); = "Soap"; 使用 CodeDom 编译客户端代理类。 CodeNamespace nmspace = new CodeNamespace(); 使用 Reflection 调用 WebService。if (! { Assembly asm = ; Type t = ("WebService"); 生成客户端代理程序集文件 上面的代码通过在内存中创建动态程序集的方式完成了动态调用过程。如果我们希望将客户端代理类生成程序集文件保存到硬盘,则可以进行如下修改。生成程序集文件后,我们可以通过 () 载入并进行反射调用。对于需要多次调用的系统,要比每次生成动态程序集效率高出很多。 using ; using ; using ; using using

Java_QQ_源程序代码

2010-06-23 20:24:11 TiBack import https://www.360docs.net/doc/c34580964.html,.*; import java.io.*; import java.sql.*; import java.util.*; public class QQServer { public static void main(String args[]) { try { //用户名同步(14) HashMap hm = new HashMap() ; // 服务器在8000端口监听(1) ServerSocket ss = new ServerSocket(8000); while (true) { "服务器正在8000端口监听....."); Socket s = ss.accept(); MyService t = new MyService(); t.setSocket(s); t.setHashMap(hm) ; t.start(); } } catch (Exception e) { } } } // 支持多用户登陆(13) class MyService extends Thread { private Socket s; private HashMap hm ; public void setHashMap(HashMap hm) { this.hm = hm ; } public void setSocket(Socket s) { this.s = s; } public void run() { try { // 接收客户端发送来的用户名和密码(2) InputStream is = s.getInputStream();

学习CXF WebService入门实例一

最近开发开始学习Web Service,如果你是大神,请路过!谢谢!遵循前辈大神们的教导~~~,内事不决问度娘,外事不决问谷歌(现在谷歌已经不能用了),只能问度娘了!上网一百度,套用周董的一句歌词,霍,霍,霍,霍,这么多的套路(axis,axis2,XFire,CXF等),我到底选择哪一个?因为要和Spring进行对接,看了一下,CXF与Spring的耦合度最好,于是就选择了CXF。上官网下jar包,下了最新的apache-cxf-3.1.4.zip包。解压出来,看看里面的最简单的实例,apache-cxf-3.1.4\samples\java_first_jaxws,本着你快乐所以我快乐加上不要脸的原则,我抄抄抄,改了一下名字,开发环境jdk1.6, jdk1.5没试过,上眼呐! 新建工程mywbs,导入jar包 cxf-core-3.1.4.jar jetty-continuation-9.2.11.v20150529.jar jetty-http-9.2.11.v20150529.jar jetty-io-9.2.11.v20150529.jar jetty-server-9.2.11.v20150529.jar jetty-util-9.2.11.v20150529.jar wsdl4j-1.6.3.jar xmlschema-core-2.2.1.jar 一、接口类IHelloWorld.java package com.ws.hello; import java.util.List; import javax.jws.WebService; import https://www.360docs.net/doc/c34580964.html,ers; @WebService public interface IHelloWorld { public String sayHello(String name); public String getUserName(Users user); public List getListUser(); } 二、实现类(说明endpointInterface = "com.ws.hello.IHelloWorld",IHelloWorld 类加上路径,此处注意)HelloWorldImpl.java package com.ws.hello; import java.util.ArrayList; import java.util.List; import javax.jws.WebService; import https://www.360docs.net/doc/c34580964.html,ers; @WebService(endpointInterface = "com.ws.hello.IHelloWorld",serviceName = "IHelloWorld", portName="IHelloWorldPort") public class HelloWorldImpl implements IHelloWorld { @Override public String sayHello(String name) { return name + ": 您好啊!";

C# .NET 动态调用webservice的三种方式

动态调用webservice的三种方式 多数时候我们通过"添加Web 引用..." 创建客户端代理类的方式调用WebService,但在某些情况下我们可能需要在程序运行期间动态调用一个未知的服务。在.NET Framework 的System.Web.Services.Description 命名空间中有我们需要的东西。 具体步骤: 1. 从目标URL 下载WSDL 数据。 2. 使用ServiceDescription 创建和格式化WSDL 文档文件。 3. 使用ServiceDescriptionImporter 创建客户端代理类。 4. 使用CodeDom 动态创建客户端代理类程序集。 5. 利用反射调用相关WebService 方法。 上述步骤需要引用如下四个名称空间: using System.Web.Services.Description; //WS的描述 //以下几个用于根据描述动态生成代码并动态编译获取程序集 using System.CodeDom; using Microsoft.CSharp; using https://www.360docs.net/doc/c34580964.html,piler; 上述几个名称空间中包括如下几个重要的类: using System.Web.Services.Description下: ServiceDescription //WS描述 ServiceDescriptionImporter //通过描述生成客户端代理类,特别注意其中的Style 以下是MSDN对其的描述: XML Web services 的接口通常由Web 服务描述语言(WSDL) 文件来说明。例如,若要获取有关使用http://localhost/service.asmx 处公开的https://www.360docs.net/doc/c34580964.html, 的Web 服务的WSDL 说明,只需导航到http://localhost/service.asmx?WSDL。使用ServiceDescriptionImporter 类可以方便地将WSDL 说明中包含的信息导入到System.CodeDom.CodeCompileUnit 对象。通过调整Style 参数的值,可以指示ServiceDescriptionImporter 实例生成客户端代理类(通过透明调用该类可提供Web 服务的功能)或生成抽象类(该类封装Web 服务的功能而不实现该功能)。如果将Style 属性设置为Client,则ServiceDescriptionImporter 生成客户端代理类,通过调用这些类来提供说明的Web 服务的功能。如果将Style 属性设置为Server,则ServiceDescriptionImporter 实例生成抽象类,这些类表示所说明的XML Web services 的功能而不进行实现。然后,可以通过编写从这些抽象类继承的类来对其进行实现,并实现相关的方法。 using System.CodeDom下: CodedomUnit //它用于设定动态代码的名称空间,类名等,可以通过ServiceDescriptionImporter.Import()方法将WS的描述代码写入该类,以作动态编译用using https://www.360docs.net/doc/c34580964.html,piler下: CodedomProvider //用于创建和检索代码生成器和代码编译器的实例,我们主要用到其实现子类CShareCodeProvider 可以直接用CShareCodeProvider provider=new CShareCodeProvider()来生成,或者用

1把高级语言写的源程序变为目标程序要经过

模拟题 一、单选题 1.把高级语言写的源程序变为目标程序要经过【 C 】。 A.汇编 B.编辑 C.编译 D.解释 2.微型计算机系统中的中央处理器通常是指【 C 】。 A.内存储器和控制器 B.内存储器和运算器 C.控制器和运算器 D.内存储器、控制器和运算器(构成主机) 3.在计算机中负责指挥和控制计算机各部分自动的、协调一致地进行工作的部件是【 A 】。 A.控制器 B.运算器 C.存储器 D.总线 4.解释程序的功能是【 A 】。 A.解释执行高级语言程序 B.将高级语言程序翻译成目标程序 C.解释执行汇编语言程序 D.将汇编语言程序翻译成目标程序 5.计算机的型号为486,则486是指【 C 】。 速度 B.硬盘容量 C.cpu类型 D.内存大小 6.下列设备中,可以将图片输入到计算机内的设备是【 C 】。 A.绘图仪 B.键盘 C.扫描仪 D.鼠标 7.微机中使用的鼠标器一般连接在计算机主机的_____上【 B 】。 A.并行接口 B.串行接口 C.显示器接口 D.打印机接口 8.以下设备中,只能作为输出设备的是【 B 】。 A.键盘 B.打印机 C.鼠标 D.软盘驱动器 9.光驱的倍数越大【 A 】。 A.数据传输越快 B.纠错能力越强 C.所能读取光盘的容量越大 D.播放VCD效果越好 10.只读光盘的英文缩写是【 D 】。

A.WORM B.MO C.WO D.CD-ROM 11.CPU不能直接访问存储器是。【 D 】 A.ROM B.RAM C.CACHE D.光盘 12.存储器容量1G、1K、1M分别表示2的次方字节。【 B 】 A.10、20、30 B.30、10、20 C.20、30、10 D.30、20、10 13.硬盘工作时,应特别注意避免。【 A 】 A.强烈震动 B.噪声 C.光线直射 D.环境卫生不好 14.软盘的所有磁道中,在最外圈的是道,它是软盘中最重要的磁道。【 A 】 A.0 B.1 C.79 D.80 15.当磁盘设置写保护时,用户磁盘。【 A 】 A.只能读不能写 B.只能写不能读 C.既能读又能写 D.既不能读又不能写 16.控制键的功能是进行键盘输入的大小写转换。【 A 】 A.Caps Lock B.Shift C.Num Lock D.Alt 17.防止软盘感染病毒的有效方法是。【 B 】 A.不要将软盘和有病毒的软盘放在一起 B.将软盘写保护 C.保持机房清洁 D.定期对软盘格式化 18.计算机病毒是一种。【 C 】 A.计算机命令 B.人体病毒 C.计算机程序 D.外部设备 19.若发现某片软盘已经感染病毒,则可。【 D 】 A.将该软盘报废 B.换一台计算机再使用该软盘上的文件 C.将该软盘上的文件拷贝到另一张软盘上使用 D.用消毒软件清除该软盘上的病毒或者在确认无病毒的计算机上格式化该软盘 20.微机系统与外部交换信息主要通过【 A 】。

相关文档
最新文档