c实现webservice上传下载文件

c实现webservice上传下载文件
c实现webservice上传下载文件

C#实现WebService上传下载文件

WebService代码:

///

///

上传文件

///

///

文件的byte[]

///

上传文件的路径

///

上传文件名字

///

[WebMethod]

public bool

UploadFile(byte[] fs, string path, string fileName) {

bool flag = false;

try

{

//获取上传案例图片路径

path = Server.MapPath(path);

if (!Directory.Exists(path))

{

Directory.CreateDirectory(path);

}

//定义并实例化一个内存流,以存放提交上来的字节数组。MemoryStream m = new MemoryStream(fs);

//定义实际文件对象,保存上载的文件。

FileStream f = new FileStream(path + "\" + fileName, FileMode.Create);

//把内内存里的数据写入物理文件

m.WriteTo(f);

m.Close();

f.Close();

f = null;

m = null;

flag = true;

}

catch (Exception ex) {

flag = false;

}

return flag;

}

[WebMethod(Description = "下载服务器站点文件,传递文件相对路径")]

public

byte[] DownloadFile(string strFilePath, string path)

{

FileStream fs = null;

string CurrentUploadFolderPath =

HttpContext.Current.Server.MapPath(path);

string CurrentUploadFilePath = CurrentUploadFolderPath

+ "\" +

strFilePath;

if (File.Exists(CurrentUploadFilePath))

{

try

{

///打开现有文件以进行读取。

fs = File.OpenRead(CurrentUploadFilePath); int b1;

System.IO.MemoryStream tempStream = new System.IO.MemoryStream();

while ((b1 = fs.ReadByte()) != -1) {

tempStream.WriteByte(((byte)b1)); }

return tempStream.ToArray();

}

catch (Exception ex)

{

return new byte[0]; }

finally

{

fs.Close();

}

}

else

{

return new byte[0];

}

客户端代码:

///

/// 上传图片附件///

///

private bool UploadImage()

{

bool flag = true;

string path = @"C:\Documents and

Settings\Administrator\My

Documents\My

Pictures\10121312156cf4a761c504fe69.jpg";//本地路径byte[] bytes = GetBytesByPath(path);//获取文件byte[]

string uploadPath = "image";//上传服务器文件夹路径

string fileName = "img18.jpg";//文件名称

try

{

localhost.Service s = new

WindowsFormsApplication1.localhost.Service();

if (s.UploadFile(bytes, uploadPath, fileName)) { flag = true; }

else { flag = false; }

}

catch

{

flag = false; }

return flag; }

///

/// 根据文件的路径获取图片的byte[]

///

///

///

public static byte[] GetBytesByPath(string path)

{

FileStream fs = new FileStream(path, FileMode.Open,

FileAccess.Read);

BinaryReader br = new BinaryReader(fs); byte[] bytes = br.ReadBytes((int)fs.Length); fs.Flush();

fs.Close();

return bytes;

}

private void DownFile()

{

localhost.Service s = new

WindowsFormsApplication1.localhost.Service();

byte[] bs = s.DownloadFile("img18.jpg","image");

FileStream stream=new FileStream(@"C:\Documents and Settings\Administrator\My Documents\My Pictures\18.jpg", FileMode.CreateNew);

stream.Write(bs,0,bs.Length);

stream.Flush();

stream.Close(); }

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/4e11826578.html,,其实这个域名是不存在的,但是我为了演示所以虚拟了这个域名,技巧在于修改 C:\Windows\System32\drivers\etc\hosts 添加内容如下: 127.0.0.1 https://www.360docs.net/doc/4e11826578.html, 这样在访问https://www.360docs.net/doc/4e11826578.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修改结果如下:注意大小写

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/4e11826578.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地址内容;

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

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/4e11826578.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/4e11826578.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/4e11826578.html,piler下: CodedomProvider //用于创建和检索代码生成器和代码编译器的实例,我们主要用到其实现子类CShareCodeProvider 可以直接用CShareCodeProvider provider=new CShareCodeProvider()来生成,或者用

webservice接口开发

Eclipse 关于接口系统的开发 我们做接口服务端: 小知识: 接口分为:服务端与客户端 服务端:即提供者,是为调用者提供数据的一方; 客户端:即调用者,是调用接口的一方; <一> 服务端的创建 步骤1. 在eclipse新建一个普通工程,例如:新建一个web project 工程。 步骤2.创建完成后,在刚才新建的工程里面,加入我们需要实现的类,和接口。在实现类里面编写客户端传入参数后,需要的相关信息。 例如: Public String sayHello(String word) { Return word; } 步骤3. 进入服务端代码的自动生成阶段,我们选中刚才编写的实现类或是创建的工程,右键。选择,new→project…→other→,如下图,选择web service 服务端。点击next

步骤4.根据下图,通过选择实现类,点击完成。自动生成服务端了。

步骤5 .前4步骤已经完成了webservice的服务端,并已经自动启动好了,我们进行如下测试,访问下自动产生的wsdl文件是否能访问到: 例如:访问wsdl地址示例 http://10.1.159.28:8082/ICTS/services/GetWorkflowListDaoImp?wsdl 其中:GetWorkflowListDaoImp 为自己创建的实现类名称 <二>客户端的创建,测试我们完成的服务端接口:

步骤1. 创建一个普通的web project 工程 步骤2. 创建完成后,选中,我们创建的工程,右键→,new→other→,创建web service cliet 客户端,完成后,点击finish。完成 步骤3。我们通过客户端进行调用,测试一下服务端是否正常。通过如下示例地址:http://10.1.159.28:8082/test1/sampleGetWorkflowListDaoImpProxy/TestClient.jsp, 这是客户端为我们自动建立的测试页面,我们只需输入参数,就可以进行测试了。界面如下:

Webservice服务端的开发和客户端调用

Webservice服务端的开发和客户端调用 1 初始化 (2) 1.1 准备一个web项目 (2) 1.2 设置Axis2环境 (2) 2 接口的发布 (3) 2.1 建立WebService 项目 (3) 2.2 WebService配置 (3) 2.2.1 确认要发布的接口的类,选择二级模式(Assemble service)创建 (3) 2.2.2 选择运行Apache Axis2 运行环境 (4) 2.3 将项目打包为EAR (4) 2.4 在Weblogic 服务器上面,添加项目并运行服务器 (4) 2.5 输入url地址,可见发布了的接口 (4) 3 使用soulUI 对接口进行测试 (5) 3.1 测试接口 (5) 4 客户端项目 (6) 4.1 首先建立一个web 项目 (6) 4.2 建立WebService 项目 (6) 4.3 Serverice 定义 (7) 4.4 编写客户端程序,测试运行 (8)

1初始化 1.1准备一个web项目 1.2设置Axis2环境

2接口的发布 2.1建立WebService 项目 先选择一个接口实现类→new →Web Services →Web Service 2.2WebService配置 2.2.1确认要发布的接口的类,选择二级模式(Assemble service)创建

2.2.2选择运行Apache Axis2 运行环境Configuration → Web service runtime:Apache Axis →Choose Web service runtime first →Apache Axis2 2.3将项目打包为EAR 2.4在Weblogic 服务器上面,添加项目并运行服务器 2.5输入url地址,可见发布了的接口

Webservice 发布--WSDL,SOAP

本周主要学习了Web service,Web service就是一个个应用程序,它向外界暴露了一个能够通过Web进行调用的API。 首先应该先了解下Webservice用到的技术:WSDL,SOAP。 WSDL(Web Services Description Language)网络服务描述语言。使用XML编写。两台机器进行通信,服务端写了一个java程序而客户端通过远程访问要调用这个java程序,客户端需要了解这个程序的作用以及所调用的方法参数等。这里我们就需要用WSDL 对此java程序进行描述,客户端获取到此描述文件后对文件进行解析,了解此文件的信息,以及调用方式。 SOAP就是一种访问协议,用于规定应用程序之间通信的格式,独立于平台和语言。根据需要生成SOAP请求信息,发到服务端。服务端接收后分析其中的方法和参数调用指定的方法完成此请求,并把返回值放入SOAP回应消息返回给客户。 例:先创建一个名为Web的Web工程在建一个名为com.cxf.web的包,在包下创建两个java文件实现两个数相加的功能: 1. add.java package com.cxf.web; import javax.jws.WebService; @WebService public interface add { public int jia(int a,int b); } 2. addImp.java、 package com.cxf.web; import javax.jws.WebService; @WebService(endpointInterface="com.cxf.web.add") public class addImp implements add{ public int jia(int c,int d){ return (c+d); } } 相关的配置

1.WebService客户端开发指南

WebService 客户端开发指南 一、前提条件 WebService已经成功部署到应用服务器上(本文以Apusic为例进行说明),客户端可以通过浏览器访问到已部署的WebService,例如通过以下地址访问到已部署的WebService:http://localhost:6888/ormrpc/services localhost 替换为服务器地址 二、获取WSDL文件 如上图所示,应用服务器已经部署了相关的WebService。要构建相关的客户端,就要获取已经部署的WebService的相应的WSDL文件,用鼠标右键点击蓝色的部分“(wsdl)”,选取“目标另存为”菜单,这时将出现选择保存文件位置的对话框,在文件名处将文件的后缀名由xml改为wsdl,将wsdl文件保存至本地。 三、生成客户端 1、生成Java客户端 下面将以使用Eclipse3.1来生成java客户端为例进行说明。Eclipse3.1可以到https://www.360docs.net/doc/4e11826578.html, 免费下载。运行后,要为Eclipse配置至少一个相应的应用服务器,例如Tomcat5.5。

1)、建立一个新工程 例如建立一个工程名为GenerateWSClient的Java工程: 2)、将获取到的WSDL文件拷贝到工程的根目录下: 3)、生成客户端 用鼠标右键点击要生成客户端的WSDL文件,选取菜单“Web Services”-“Generate Client”

将会弹出生成客户端向导:

如图,使用默认值,点击“Next >”,进入下一步: 依然使用默认值,点击“Next >”,进入下一步:

生成WebService客户端

Eclipse3.3生成客户端 右击选中项目test---->New---->Other ---->Web Service Client---->Browse wsdl地址: 下载wsdl文件放在项目中:/test/WebContent/SyyhConvertData.wsdl 或者 网络上wsdl链接:http://localhost:8080/ckwWebService/SyyhConvertData?wsdl 生成的文件中,作为接口来使用的文件名为:####Stub.java。####因webservice的类名不同而不同。这个文件中就包含了webservice的所有方法。 问题1 [WARN ] 2011-12-28 09:19:58,703 - Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled. 需要mail.jar和activation.jar。 参考 https://www.360docs.net/doc/4e11826578.html,/wform/archive/2006/04/27/mail_activation_jar.html https://www.360docs.net/doc/4e11826578.html,/webtools/wst/components/ws/download_instructions_for_jars.ht ml

CXF生成客户端 解压apache-cxf-2.5.0.zip 在apache-cxf-2.5.0\bin\wsdl2java.bat中以下两个变量: set CXF_HOME=E:\source\apache-cxf-2.5.0 set JAVA_HOME=C:\Java\jdk1.6 需要用到jaxb-api-*.jar 将apache-cxf-2.5.0\lib\endorsed目录拷贝到C:\Java\jdk1.6\jre\lib wsdl2java wsdl地址 C:\>E:\source\apache-cxf-2.5.0\bin\wsdl2java -d d:\src -client http://localhost:8080/ckwWebService/SyyhConvertData?wsdl 或者 C:\>E:\source\apache-cxf-2.5.0\bin\wsdl2java -d d:\src -client c:/SyyhConvertData.wsdl

httpClient远程调用webService

我们将Web Service发布在Tomcat或者其他应用服务器上后,有很多方法可以调用该Web Service,常用的有两种: 1、通过浏览器HTTP调用,返回规范的XML文件内容 2、通过客户端程序调用,返回结果可自定义格式 接下来,我利用Eclipse作为开发工具,演示一个Httpclient调用WebService的简单示例 步骤如下: 准备工作:用到的jar包有:下载链接 (https://www.360docs.net/doc/4e11826578.html,/detail/lanxuezaipiao/5354480) 第一步:新建Java Project,项目名称为HttpCallWebService 第二步:将所需jar包导入到库中 第三步:编写调用class,这里有两种方式调用,即GET方式和POST方式,由于POST 方式较安全,故这里采用POST方式调用;请求数据的构造也有两种方式:静态和动态构造,下面分别介绍这两种方式: 注:这里以E邮宝开放的webservice接口为例调用其中一个API函数,而E邮宝的webservice基于SOAP,故请求数据为SOAP格式,大家可根据自己情况进行修改。静态构造请求数据: package com.http; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import https://www.360docs.net/doc/4e11826578.html,mons.httpclient.HttpClient; import https://www.360docs.net/doc/4e11826578.html,mons.httpclient.HttpException; import https://www.360docs.net/doc/4e11826578.html,mons.httpclient.methods.InputStreamRequestEntity; import https://www.360docs.net/doc/4e11826578.html,mons.httpclient.methods.PostMethod; import https://www.360docs.net/doc/4e11826578.html,mons.httpclient.methods.RequestEntity; public class StaticHttpclientCall { /** * @param args * @throws IOException * @throws HttpException */ public static void main(String[] args) throws HttpException, IOException { // TODO Auto-generated method stub

WebService客户端代码生成方式总结

一、Webservice可以使用的框架很多。AXIS、CXF 、JAX、XFIRE,这些框架都可以根据wsdl文件生成ws的服务器和客户端代码。 二、Ws的调用方式有三种,http post、http get、soap post。本人建议使用http post,他访问远程ws接口的速度比使用soap post要快些。象使用axis框架实现soap post方式来说,简单的接口还好,对于使用了大量代理类及带有soaphead的ws,且还要在本地生成一大堆JAVA类来和服务端对应。特别如下这种情况,axis好像无法实现。 Soaphead如下 0039434454 67677 象这种只能根据org.apache.axis.client.Call.addHead(ElementSoapHead)来增加报头。但这个报头没有根元素,无法创建一个这种Element。 下面就如何书写客户端代码详细讲解下。 1.通过发送http post请求来调用ws。 SOAPUI是个不错的工具,他可以根据wsdl文件生成测试例子。另外重要的是,它可以生成wsdl对应的请求报文和响应报文。这样我们在调用别人写的ws时,不管多复杂的ws都可以简单的调用。首先按照SOAPUI显示的请求报文格式拼装我们的请求报文,使用https://www.360docs.net/doc/4e11826578.html,.HttpURLConnection对象来发送http post请求。然后使用输出流、输出流获得响应报文,再用Element解析报文得到要取的数据。示例代码如下: JAVA类SoapInvoke: package test; import java.io.InputStream; import java.io.OutputStream; import https://www.360docs.net/doc/4e11826578.html,.HttpURLConnection; import https://www.360docs.net/doc/4e11826578.html,.URL; public class SoapInvoke { public static void main(String[] args) { try { soapSpecialConnection(); } catch (Exception e) { e.printStackTrace(); } } public static void soapSpecialConnection() throws Exception { //拼装soap请求报文 StringBuilder sb = new StringBuilder(); StringBuilder soapHeader = new StringBuilder(); soapHeader.append("

WebService接口实例说明文档

WebService接口说明文档 文档说明 本文档主要讲述如何用CSharp创建一个简单的WebService接口,并使用Java调用这个WebService接口。 准备工作 系统环境:安装JDK1.6或更新版本 开发工具:Microsoft Visual Studio2012、MyEclipse10.5、axis2-1.6.2 C Sharp服务端 1.首先,创建一个Web Service项目。依次点击:文件—新建—项目,在弹出的新建项目窗口中选择 Web下的https://www.360docs.net/doc/4e11826578.html, 空 Web应用程序。如下图: 2.接下来我们需要创建我们的WebService接口实现文件。鼠标右击我们的项目,依次点击:添加—新 建项,在弹出窗口中选择Web服务。可修改新建项的文件名,注意文件名后缀后.asmx。如下图:

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

我们可以直接运行查看下运行的效果,效果如下图: 点击HelloWorld,再点击调用可以看到页面返回:

4.接下来我们完善我们的WebService接口功能。主要对WebService接口进行参数类型的测试,文本型、 布尔型、数值型、类(Class)等。 新增Add()等运算方法: 新增strcat()连接字符串方法: 新增GetBool()返回布尔值方法: 新增GetTest()返回测试类,并新增Test类 运行我们的项目,可以看到我们的结果如下图:

点击add方法测试: 输入add的参数i和j点击调用按钮,可以看到返回计算结果: 5.到此为止我们C Sharp创建的WebService程序完成。接下来看Java如何调用我们的WebService接口。

手把手教你创建axis_webservice

利用AXIS开发W ebservice(一) ——如何发布自己的webservice 先介绍下本人开发环境吧。JDK 1.4.2 + Myeclipse 6.0(实在经不起诱惑,尝尝鲜)+ Tomcat 5.0.28 + AXIS 1.4。AXIS 1.4包可以在https://www.360docs.net/doc/4e11826578.html,/axis/找到。假设所有的环境你已经搭好,并且AXIS包也已经下好了。OK,Here we go~ 解压axis-bin-1_4.zip这个包可以看到webapps目录,双击进入把里面的AXIS文件夹拷到%TOMCA T_HOME%\webapps目录下,之后拷贝activation.jar、mail.jar、tools.jar 到%TOMCA T_HOME%\webapps\axis\WEB-INF\lib目录下。启动tomcat,访问http://localhost:8080/axis/happyaxis.jsp 如果访问成功,恭喜你!基本的配置你已经做完了。 PS:此处的%TOMCA T_HOME%指的是Tomcat的安装目录,至于那另外的三个jar包,J2EE 1.4库里就能找的到。 现在来说一下最关键的Webservice的发布。AXIS提供了两种发布方式,一种是即时发布(Instant Deployment),另外一种是定制发布(Custom Deployment)。即时发布提供了一种非常简单的webservice的发布方式,但是其中限制太多,因此在实际的开发中定制发布才是首选。这里也将会以定制发布为重点来介绍。 1.即时发布JWS (Java Web Service) Files - Instant Deployment 即时发布提供了一种非常简单发布方式,发布者只要有Java源代码(也就是.java文件),然后把其后缀名改成jws(也就是java web service的缩写)拷贝到%TOMCA T_HOME%\webapps\axis目录下即完成了所有的发布工作。AXIS的编译引擎会处理接下来的所有事情。下面是一段示例代码: java 代码 public class HelloAXIS { public String Hello(String name){ return "AXIS say hello to " + name; } } 把HelloAXIS.java 文件改成HelloAXIS.jws 然后拷贝到%TOMCA T_HOME%\webapps\axis目录下,启动Tomcat之后访问

eclipse根据wsdl文件生成webservice客户端-图例

eclipse根据wsdl文件生成webservice客户端 一、前期准备: (1) 1、配置log4j (1) 2、log4j使用jar包: (2) 3、wsdl使用jar包: (2) 二、开始生成文件: (2) 一、前期准备: 1、配置log4j 没有配置的场合提示下列的信息(可以不配置): ( log4j:WARN No appenders could be found for logger (org.apache.axis.i18n.ProjectResourceBundle). log4j:WARN Please initialize the log4j system properly. Error: Missing argument to option -p ) log4j.properties文件内容: log4j.rootLogger=info,stdout,R ######################## # Console Appender ####################### log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out https://www.360docs.net/doc/4e11826578.html,yout=org.apache.log4j.PatternLayout https://www.360docs.net/doc/4e11826578.html,yout.ConversionPattern=%X{LKV}%d{yyyy-MM -dd HH:mm:ss,SSS}%c%t%L%p-%m%n ######################## # File Appender ####################### log4j.appender.R=org.apache.log4j.DailyRollingFileAppender #log4j.appender.R.File=${WORKDIR}/TestWebService/WebRoot/logs/out

什么是webservice

你可能早就听说过Web service了,你也可能已经对Web service有一些概念了。一时间,好像所有的计算机期刊、书籍和网站都开始提及Web service。然而,当前大多数对Web service的介绍都没能清楚的说明Web service到底是什么。他们只是鼓吹Web service是多么多么的好,简直就像是在做广告。在本文中会讲清楚两件事:Web service到底是什么;在什么情况下你应该使用Web service。 分布式应用程序和浏览器 研究一下当前的应用程序开发,你会发现一个绝对的倾向:人们开始偏爱基于浏览器的瘦客户应用程序。这当然不是因为瘦客户能够提供更好的用户界面,而是因为它能够避免花在桌面应用程序发布上的高成本。发布桌面应用程序成本很高,一半是因为应用程序安装和配置的问题,另一半是因为客户和服务器之间通信的问题。 传统的Windows富客户应用程序使用DCOM来与服务器进行通信和调用远程对象。配置好DCOM使其在一个大型的网络中正常工作将是一个极富挑战性的工作,同时也是许多IT工程师的噩梦。事实上,许多IT工程师宁愿忍受浏览器所带来的功能限制,也不愿在局域网上去运行一个DCOM。在我看来,结果就是一个发布容易,但开发难度大而且用户界面极其受限的应用程序。极端的说,就是你花了更多的资金和时间,却开发出从用户看来功能更弱的应用程序。不信?

问问你的会计师对新的基于浏览器的会计软件有什么想法:绝大多数商用程序用户希望使用更加友好的Windows用户界面。 关于客户端与服务器的通信问题,一个完美的解决方法是使用HTTP 协议来通信。这是因为任何运行Web浏览器的机器都在使用HTTP 协议。同时,当前许多防火墙也配置为只允许HTTP连接。 许多商用程序还面临另一个问题,那就是与其他程序的互操作性。如果所有的应用程序都是使用COM或.NET语言写的,并且都运行在Windows平台上,那就天下太平了。然而,事实上大多数商业数据仍然在大型主机上以非关系文件(VSAM)的形式存放,并由COBOL 语言编写的大型机程序访问。而且,目前还有很多商用程序继续在使用C++、Java、Visual Basic和其他各种各样的语言编写。现在,除了最简单的程序之外,所有的应用程序都需要与运行在其他异构平台上的应用程序集成并进行数据交换。这样的任务通常都是由特殊的方法,如文件传输和分析,消息队列,还有仅适用于某些情况的的API,如IBM的高级程序到程序交流(APPC)等来完成的。在以前,没有一个应用程序通信标准,是独立于平台、组建模型和编程语言的。只有通过Web Service,客户端和服务器才能够自由的用HTTP进行通信,不论两

Eclipse下使用Xfire创建WebService入门示例

Eclipse下使用Xfire创建WebService入门示例(上) 关键字: Eclipse Xfire Java WebService Web Service概述 什么是Web Service Web Service是能够基于网络,尤其是基于万维网(World Wide Web)直接调用的能够处理离散任务或连续任务的软件模型。目前较为流行的应用是,由一家公司对其专有数据进行封装,提供Web Service,然后其它公司就可以通过Internet来动态使用这些在线服务。这为未来全球的电子商务发展提供了新的标准和架构。 Web Service架构 Web Service是独立的、模块化的应用,能够通过因特网来描述、发布、定位以及调用。在Web Service的体系架构中包括三个角色:服务提供者(Service Provider)、服务请求者(Service Requestor)、服务注册器(Service Registry)。角色间主要有三个操作:发布(Publish)、查找(Find)、绑定(Bind)。 下图清楚的描述了三种角色,以及角色之间的作用关系。 图示一: 图示二: 这个流程图显示了Web Services中的核心技术是如何工作的。 这里,Provider是提供服务的应用程序组件,Requester是使用服务的客户端程序。很多其他技术也会参与到交互中,但是这个图只显示了在Web Services环境中必需的核心技术组件。 Web Service协议标准 简单对象访问协议(SOAP) SOAP是Simple Object Access Protocol的缩写,是一种基于XML的不依赖传输协议的表示层协议,用来在分散或分布式的应用程序之间方便地以对象的形式交换数据。在SOAP的下层,可以是HTTP/HTTP,也可以是SMTP/POP3,还可以是为一些应用而专门设计的特殊的通信协议。 SOAP包括三个主要部分: 2 SOAP封装结构:定义了一个整体框架,以表示消息中包含什么内容,谁来处理这些内容以及这些内容是可选的或是必需的。 2 SOAP编码规则:定义了用以交换应用程序定义的数据类型的实例的一系列机制。 2 SOAP RPC表示:定义了一个用来表示远程过程调用和应答的协定。 Web Service描述语言(WSDL)

使用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 -Djava.ext.dirs=%Axis_Lib% set Axis_Servlet=http://localhost:8090/myAxis/services/HelloWorld?wsdl %Java_Cmd% org.apache.axis.wsdl.WSDL2Java -u %Axis_Servlet% 备注:红色字体我的axis的目录,也就是刚才我解压出来的axis, 蓝色是我的webservice的访问地址,其他的不用处理, 然后双击这个文件,产生以下几个文件: (1)、目录是:C:\localhost\myAxis\services\HelloWorld (2)、 四、将这四个文件拷贝到你的客户端,创建客户端 运行即可 附录代码: 服务端 HelloWorld.java

package webservice.axis.test; 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 webservice.axis.test.batClient; public interface HelloWorld extends java.rmi.Remote { public https://www.360docs.net/doc/4e11826578.html,ng.String hello() throws java.rmi.RemoteException; } 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 webservice.axis.test.batClient; public interface HelloWorldService extends javax.xml.rpc.Service { public https://www.360docs.net/doc/4e11826578.html,ng.String getHelloWorldAddress(); public webservice.axis.test.batClient.HelloWorld getHelloWorld() throws

相关文档
最新文档