搜档网
当前位置:搜档网 › Java编写WebService实例

Java编写WebService实例

Java编写WebService实例
Java编写WebService实例

利用Java编写简单的WebService实例

使用Axis编写WebService比较简单,就我的理解,WebService的实现代码和编写Java代码其实没有什么区别,主要是将哪些Java类发布为WebService。下面是一个从编写测试例子到发布WebService,以及编写测试代码的过程介绍。

本例子的WebService提供了两个方法,分别是sayHello和sayHelloToPerson,第一个只是返回一个"Hello"字符串,没有参数,第二个函数接受一个字符串作为参数,返回"Hello 参数值",该例子比较简单,但是清楚的说明了从编写代码到发布为WebService以及测试编写好的WebService全过程。

编写服务代码

服务代码提供了两个函数,分别为sayHello和sayHelloToPerson,源代码如下:/*

* File name: HelloService.java

*

* Version: v1.0

*

* Created on Aug 2, 2008 9:40:20 AM

*

* Designed by Stephen

*

* (c)Copyright 2008

*/

package com.sinosoft.webservice;

/**

* @author Stephen

*

* Test web service

*/

public class HelloService {

/**

* 不带参数的函数

*

* @return返回Hello字符串

*/

public String sayHello() {

return "Hello";

}

/**

* 带参数的函数

*

* @param name

* 名称

* @return返回加上名称的欢迎词

*/

public String sayHelloToPerson(String name) {

if (name == null || name.equals("")) {

name = "nobody";

}

return "Hello " + name;

}

}

发布WebService

要将上边写的HelloService类发布为WebService,需要先搭建Web应用。下面是在Tomcat下使用Axis创建WebService服务的例子。

在Tomcat下创建Web应用

在该例子中,在Tomcat下创建了一个context path为ws的WEB应用。

1. 在Tomcat的webapps下创建如下文件系统

ws

WEB-INF

lib

classes

2. 在WEB-INF文件夹下创建web.xml文件,该文件的内容如下:

Application 2.3//EN" "https://www.sodocs.net/doc/dc2737561.html,/dtd/web-app_2_3.dtd">

Apache-Axis

org.apache.axis.transport.http.AxisHTTPSess ionListener

AxisServlet

Apache-Axis Servlet

org.apache.axis.transport.http.AxisServlet

AdminServlet

Axis Admin Servlet

org.apache.axis.transport.http.AdminServlet

100

SOAPMonitorService

SOAPMonitorService

org.apache.axis.monitor.SOAPMonitorService

SOAPMonitorPort

5001

100

AxisServlet

/servlet/AxisServlet

AxisServlet

*.jws

AxisServlet

/services/*

SOAPMonitorService

/SOAPMonitor

5

https://www.sodocs.net/doc/dc2737561.html,/TR/2003/WD-wsdl12-20030303/#ietf-draft

for now we go with the basic 'it's XML' response -->

wsdl

text/xml

xsd

text/xml

index.jsp

index.html

index.jws

在上面的web.xml中主要是配置了axis的相关配置。

axis的相关配置

在上述的web.xml文件中已经对axis进行了配置,但是还需要进行额外的配置。

复制axis相关的jar文件

将axis的相关jar文件复制到WEB-INF\lib文件夹下。这些文件包括:

activation.jar

axis.jar

axis-ant.jar

axis-schema.jar

commons-discovery-0.2.jar

commons-logging-1.0.4.jar

jaxrpc.jar

log4j-1.2.8.jar

mailapi.jar

saaj.jar

wsdl4j-1.5.1.jar

xmlsec-1.3.0.jar

复制WebService服务主文件

将HelloService.java编译后的class文件复制到WEB-INF\classes文件夹下,也就是说在WEB-INF\classes文件夹下的文件夹结构为:com\sinosoft\webservice,在webservice 文件夹下有一个helloservice.class文件。

测试发布的Web应用

启动Tomcat服务,打开IE浏览器,访问地址http:host:port/ws/services,如果看到如下界面就说明AXIS部署成功了。

发布WebService

发布WebService需要使用现有的AdminService来实现,这里我写了一个批处理文件来发布WebService,以后如果需要发布其他文件,只需要修改相应的参数就可以了。

创建deploy.wsdd文件

文件deploy.wsdd内容如下所示:

创建发布WebService服务的批处理文件

批处理文件deploywebservice.bat内容如下:

java -cp E:\Stephen\Lib\axislib\activation.jar;E:\Stephen\Lib\axislib \axis-ant.jar;E:\Stephen\Lib\axislib\axis-schema.jar;E:\Stephen\Lib\a xislib\axis.jar;E:\Stephen\Lib\axislib\commons-discovery-0.2.jar;E:\S tephen\Lib\axislib\commons-logging-1.0.4.jar;E:\Stephen\Lib\axislib\j axrpc.jar;E:\Stephen\Lib\axislib\log4j-1.2.8.jar;E:\Stephen\Lib\axisl ib\mailapi.jar;E:\Stephen\Lib\axislib\saaj.jar;E:\Stephen\Lib\axislib \wsdl4j-1.5.1.jar;E:\Stephen\Lib\axislib\xmlsec-1.3.0.jar org.apache. axis.client.AdminClient -lhttp://localhost:8090/ws/services/AdminServ ice deploy.wsdd

其中E:\Stephen\Lib\axislib是存放axis对应的jar文件的文件夹,现在将所有的jar文件都加入到classpath中进行执行。

-l后的参数是本地要发布WebService的AdminService对应的访问地址。

最后deploy.wsdd是对应的配置文件名称。

发布WebService服务

将deploy.wsdd文件和deploywebservice.bat文件复制到同一个文件夹下,执行deploywebservice.bat批处理文件,就可以将deploy.wsdd中描述的Java类发布为WebService。发布完成之后在访问http://host:port/ws/services如下图所示:

从上图可以看出,发布成功后,多了一个HelloServices的服务。这样就说明HelloService 发布成功了。

查看HelloServices的wsdl

访问http://host:port/ws/services/HelloServices?wsdl可以看到如下wsdl的内容:

用Java调用WebService实例

下面是用Java调用刚发布的WebService例子。

/*

* File name: TestHelloService.java

*

* Version: v1.0

*

* Created on Aug 2, 2008 9:54:10 AM

*

* Designed by Stephen

*

* (c)Copyright 2008

*/

package https://www.sodocs.net/doc/dc2737561.html,.sinosoft.webservice;

import java.io.IOException;

import https://www.sodocs.net/doc/dc2737561.html,.MalformedURLException;

import https://www.sodocs.net/doc/dc2737561.html,space.QName;

import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;

import org.apache.axis.client.Service;

import https://www.sodocs.net/doc/dc2737561.html,mons.logging.Log;

import https://www.sodocs.net/doc/dc2737561.html,mons.logging.LogFactory;

/**

* @author Stephen

*

* 测试调用WebService

*/

public class TestHelloService {

private static final Log log = LogFactory.getLog(TestHelloService. class);

private static final String HELLO_SERVICE_ENDPOINT = "http://loca lhost:8090/ws/services/HelloServices?wsdl";

public static void main(String[] args) {

TestHelloService tester = new TestHelloService();

// tester.callSayHello();

tester.callSayHelloToPerson();

}

public void callSayHello() {

try {

Service service = new Service();

Call call = (Call) service.createCall();

call.setTargetEndpointAddress(new https://www.sodocs.net/doc/dc2737561.html,.URL(

HELLO_SERVICE_ENDPOINT));

call.setOperationName(new QName("http://webservice.sinoso https://www.sodocs.net/doc/dc2737561.html,/",

"sayHello"));

call.setReturnType(org.apache.axis.Constants.XSD_STRING);

try {

String ret = (String) call.invoke(new Object[] {});

System.out.println("The return value is:" + ret);

return;

} catch (IOException e) {

e.printStackTrace();

}

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (ServiceException e) {

e.printStackTrace();

}

log.error("call sayHello service error!");

}

public void callSayHelloToPerson() {

try {

Service service = new Service();

Call call = (Call) service.createCall();

call.setTargetEndpointAddress(new https://www.sodocs.net/doc/dc2737561.html,.URL(

HELLO_SERVICE_ENDPOINT));

call.setOperationName(new QName("http://webservice.sinoso https://www.sodocs.net/doc/dc2737561.html,/",

"sayHelloToPerson"));

call.addParameter("name", org.apache.axis.Constants.XSD_S TRING,

javax.xml.rpc.ParameterMode.IN);

call.setReturnType(org.apache.axis.Constants.XSD_STRING);

try {

String ret = (String) call.invoke(new Object[] { "Ste phen" });

System.out.println("The return value is:" + ret);

return;

} catch (IOException e) {

e.printStackTrace();

}

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (ServiceException e) {

e.printStackTrace();

}

log.error("call sayHello service error!");

}

}

Tag标签: webservice,java,axis

XMLWebService完全实例详细解析

XMLWebService完全实例详细解析 首先,我们必须了解什么是webservice.就概念上来说,可能比较复杂,不过我们可以有个宏观的了解:webservice就是个对外的接口,里面有函数可供外部客户调用(注意:里面同样有客户不可调用的函数).假若我们是服务端,我们写好了个webservice,然后把它给了客户(同时我们给了他们调用规则),客户就可以在从服务端获取信息时处于一个相对透明的状态.即是客户不了解(也不需要)其过程,他们只获取数据. webservice传递的数据只能是序列化的数据,典型的就是xml数据,这里我们也只讨论XML数据的传输. 有了一些对XML webservice的初步了解后,我们将切入正题,即是用一个具体的webservice事例的形式来讲解具体的webservice用法,用具体的事例来讲解一个概念我想怎么也要比单纯的说理能让人容易理解吧. 这里,我们将以一个简单的分布式课件搜索系统为例来讲解.使用VS2003为编译环境,C#为语言,SqlServcer2000为数据库.(这个例子来源于一位网上朋友的文章的启发,觉得很能代表webservice的特点,就按那个想法做了这么个系统来示例了) 首先,明确我们要做什么.我们需要一个对客户的接口,也就是个站点,我们把它称做ServiceGatherSite,它是何种形式都无所谓,甚至它本身并不需要数据库,它只是提供给用户一个查询的接口,真正的服务,普通用户是不接触到的.然后,这里我们还需要若干个提供服务的站点,我们可以称它们为资源站,这里为简单起见,假设有两个资源站,分别叫WebSiteA,WebSiteB,它们可以是不对外公布的,只是为了丰富查询数据而存在.最后,是我们最需要关注的东西---资源站提供给ServiceGatherSite的服务.两个资源站,就有两个服务,我们称为SiteAService和 SiteBService.两个服务间没有任何关系,内部提供的方法也完全没关联,只是需要把方法如何使用告诉ServiceGatherSite,意思是,服务只提供查询接口,返回的数据如何处理,服务本身并不管,全由使用服务的站点分配. 写了这么多,算是简要的介绍了下有关XML webservice的概念和我们这个例子的结构,下篇文章,我们将开始真正进入代码的设计阶段. 上篇文章介绍了些webservice的基本特性和我们例子的结构,这篇文章我们将开始具体的代码编写工作.

C#调用WebService实例和开发

C#调用WebService实例和开发 一、基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。简单的理解就是:webservice就是放在服务器上的函数,所有人都可以调用,然后返回信息。比如google就有一个web service,你调用它就可以很容易的做一个搜索网站。就像调用函数一样,传入若干参数(比如关键字、字符编码等),然后就能返回google检索的内容(返回一个字符串)。其中, Soap:(Simple Object Access Protocol)简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。 WSDL:(Web Services Description Language)WSDL文件是一个XML文档,用于说明一组SOAP消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。 UDDI(Universal Description,Discovery,and Integration)是一个主要针对Web服务供应商和使用者的新项目。在用户能够调用Web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP 消息机制(标准的XML/HTTP)来发布,编辑,浏览以及查找注册信息。它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。 二、优点缺点 Web Service的主要目标是跨平台的可互操作性。为了实现这一目标,Web Service完全基于XML(可扩展标记语言)、XSD(XML Schema)等独立于平台、独立于软件供应商的标准,是创建可互操作的、分布式应用程序的新平台。因此使用Web Service有许多优点: 1、跨防火墙的通信 如果应用程序有成千上万的用户,而且分布在世界各地,那么客户端和服务器之间的通信将是一个棘手的问题。因为客户端和服务器之间通常会有防火墙或者代理服务器。传统的做法是,选择用浏览器作为客户端,写下一大堆ASP页面,把应用程序的中间层暴露给最终用户。这样做的结果是开发难度大,程序很难维护。要是客户端代码不再如此依赖于HTML表单,客户端的编程就简单多了。如果中间层组件换成Web Service的话,就可以从用户界面直接调用中间层组件,

Delphi调用WebService的实例(非常经典)

Delphi 调用webservice 经典实例 Dispatch: 派遣,分派 Invoke: 调用 Invokable: 可调用接口 TReomtable: WebService中自定义类都是继承自该类 TSOAPAttachment: Attachment:附件,一种流类型,可以返回流数据 CGI:(EXE) ISAPI:(DLL) Base64编码: uses EncdDecd; s := EncodeString(s); //加 base64 编码 s := DecodeString( str ); //解码 UTF8: UTF8 是8位的UNICODE字符,而ASCII是7位 ,gb2312和unicode是2字节/字,utf8是3字节/字utf8类似以前的8位转7位的编码,是为了在网络间不同系统的通讯方便而作的转换。几乎所有用.Net写的WebService只支持DOC方式、Delphi写的只支持RPC方式;J2ME目前对Web Service的支持仅限于RFC172,而 RFC172要求必须为DOC方式(sun怎么偏袒MS?)! 为了在设计中减少障碍,下面还介绍几个概念。 1) SOAP:SOAP是一种简单有效的数据传输协议,用于分布式网络环境下数据信息交换,它以XML 作为数据传输的格式,搭配Internet上标准的传输协议HTTP、SMTP、TCP等来传送信息。从本质上看,SOAP事实上只是将Request和Response经由XML格式把数据打包,达到双方沟通的目的。 2) WSDL:WSDL(Web Service Description Language)是一种以XML格式描述的Web Service语言,当Web Service Provider 要对外公布提供的 Web Service,就需要通过WSDL来构建描述语言。在WSDL中有两个非常重要的要素::此WSDL文件所要描述的Web Service集合;每一个Port代表外界Client可以和此Service沟通的一个进入点,一个Port会指定一个Binding方式。 3):处理中文乱码的问题: 将HttpRio的 Converter 的 Options 的 soUTF8InHeader 设为 True 将生成soap消息的HTTPSoapDispatcher控件,添加encoding为gb2312 https://www.sodocs.net/doc/dc2737561.html,eUTF8InHeader := True; 4)在Delphi中,能够传递的自定义类型的对象要继承TRemotable, 5:修正一个服务器端的一个Bug:将ISAPIThreadPool和ISAPIApp的次序变一下:ISAPIApp必须在 ISAPIThreadPool之前: uses ... ISAPIApp, ISAPIThreadPool 解决如下错误: Received content of invalid Content-Type setting:text/html -SOAP"expects"text/xml" 6:"XML document must have a top level element. Line: 0" 错误,我该如何解决??哈纳斯 (2002-08-05 17:26:00) 我也曾碰到同样的问题解决方法是:别设httprio的wsdllocation,设它的url 如http://localhost/mydir/project1.exe/wsdl/IFIRST mydir是你的可执行的虚拟目录,IFIRST是你定义的接口名 ********************************************************************* **************************

第一个webservice例子

第一个的webservice实例 超简单,才5步 1> 获取axis及关联的jar包 https://www.sodocs.net/doc/dc2737561.html,/topics/download/6a76de1e-d506-35bc-a41b-508d4be04025 2> 新建一个模拟服务java类 package server; public class SayHello { public String getName(String name) { return "你好," + name; } } 3> 在web.xml 下新增一个servelt AxisServlet org.apache.axis.transport.http.AxisServlet AxisServlet /services/* 4> 在web项目的web.xml 同目录新建文件server-config.wsdd,自己改改

学习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.sodocs.net/doc/dc2737561.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.sodocs.net/doc/dc2737561.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 + ": 您好啊!";

使用Myeclipse创建WebService实例

使用Myeclipse 开发基于JAX-WS的Web service实例 本文为Web service 开发入门篇,主要介绍在Myeclipse 环境下开发Web service的服务程序和客户端程序的基本流程。 在Weblogic 10.3.4 中部署Web service服务。 开发环境如下: JAVA IDE:Myeclipse Web server:Weblogic 开发Web service服务程序,需要了解以下相关内容,WSDL, SOAP, XML。这些是组成Web service 的基础。 在下开发Web service程序,目前系统支持的开发框架有3个, JAX-WS,REST(JAX-RS),XFire。其中系统建议不要使用XFire 的框架,可能是要被淘汰了(deprecated)。我们选择的是JAX-WS框架。这个需要Java EE 的支持。所以后面选择Web server容器的时候,是要能支持Java EE 的才可以部署成功。 (一)Web service服务端开发 1. 新建一个Web service project, 菜单File -> New -> Web Service Project,

在上面的框中输入项目名myWebSvc,框架选择JAX-WS, J2EE只能选择Java EE 。Finish完成项目新建。 2. 新建一个Java Bean, 就是一个普通的Class, File –> New -> Class,

包名输入类名输入SayHello, Finish 结束新建类。在类中加入一个方法sayHaha如下, package public class SayHello

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.sodocs.net/doc/dc2737561.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接口。

MyEclipse开发Webservice实例

MyEclipse Web Services是建立在XFire JavaSOAP框架和工具基础上的, XFire是一款开源的JavaSOAP框架。它拥有一个轻量级的信息处理模块,通过STAX来与SOAP信息相结合。提供了一个工作在WebServices下的简单API,支持POJO和schema开发. XFire支持Web Services standards,Spring整合, 支持JBI , 支持JAXB ,XMLBeans,Java 5 和JAX-WS.并支持HTTP, JMS, XMPP,In-memory传输协议 一、环境配置:MyEclipse7.0 JDK1.6 二、创建Web Service Project 1)在MyEclipse中选择File—>New—>Other,选择Web Service Project 2)Project Name:WebServiceServer,Framework:XFire,其他选项默认

3)Next,这一步保持默认值 4)Project Library选择,选择XFire 1.2 Core Libraries

5)Finish,创建成功后看到的工程目录如下: 6)完成以上5步后,查看WebRoot/WEB-INF/web.xml 这里指明了当遇到/services/*请求时,将选用XFireConfigurableServlet来处理

三、创建Web Service Code 1)通过File—>New—>Other—>Web Services—>Web Service wizard创建JAVA CODE

webservice接口实现过程

说明:该文档以电子路演系统与ECM的WebService集成为例 创建服务端 一、搭建测试环境 1 新建web工程OARSInterface,引入jar包 将“E:\zhaodongmei\ECM\OARSandECM\IntegrationInterfaceCode\测试代码\WebService\WebJarFiles”目录下的jar包引入。 引入的具体jar包如下:activation.jar;apache_soap-2_3_1.jar;axis.jar;axis-ant.jar;CEOperterMonitor.jar;CEService_IIOP.jar;commons-collections-3.2.jar;commons-discovery-0.2.jar;commons-fileupload-1.2.1.jar;commons-io-1.3.2.jar;commons-logging-1.0.4.jar;dom4j-1.6.1.jar;dom4j-1.6.1.jar;jaxen-1.1.1.jar;jaxrpc.jar;log4j-1.2.8.jar;mail.jar;saaj.jar;wsdl4j-1.5.1.jar。其中可选包(发布服务及生成客户端程序是要用到的):activation.jar;mail.jar。 2 配置web.xml文件 参照E:\zhaodongmei\ECM\OARSandECM\IntegrationInterfaceCode\测试代码\WebService\客户端测试项目\OARSTest\WebRoot\WEB-INF\ web.xml进行配置,不需要进行修改 二、接口开发 在开发之前,我们先介绍与接口实现相关的两个jar包:CEOperterMonitor.jar和CEService_IIOP.jar。 CEOperterMonitor.jar:实现的是对接口操作的监控。当电子路演系统调用我们的接口进行上传、下载、修改和删除操作时,可以在监控系统的数据库中查看到相关的操作记录。CEService_IIOP.jar:主要的功能是提供对文件夹或文件进行操作的各个接口供本文档中接口的开发时调用。当该jar包中的函数不能满足开发的需要时,可以对该jar包进行修改,即重写某些方法。 1 编写服务端程序src/services.OARSService/ OARSService.java 在该Java类中实现了10个方法:OARSService();getProperties(String filename);uploadRSFile( DataHandler file,Map parms);deleteRSFile(String documentId);downloadRSFile(String documentId);updateFileProperyAndPermission(DataHandler xmlFile);getParams(List affixfilebeanList);writeXML(DataHandler xmlFile);createFolder(String folderPath);main(String[] args) 下面分别介绍这些函数的功能: ①OARSService():构造函数,主要实现的功能是从OARS.config中取得参数值。并在

WebService实例解析

最近闲来无事,想起blog很久没写新文章了,干脆来写个专题好了,想来想去,干脆写个有关webservice的示例文章吧. 首先,我们必须了解什么是webservice.就概念上来说,可能比较复杂,不过我们可以有个宏观的了解:webservice就是个对外的接口,里面有函数可供外部客户调用(注意:里面同样有客户不可调用的函数).假若我们是服务端,我们写好了个webservice,然后把它给了客户(同时我们给了他们调用规则),客户就可以在从服务端获取信息时处于一个相对透明的状态.即是客户不了解(也不需要)其过程,他们只获取数据. webservice传递的数据只能是序列化的数据,典型的就是xml数据,这里我们也只讨论xml数据的传输. 有了一些对xml webservice的初步了解后,我们将切入正题,即是用一个具体的webservice事例的形式来讲解具体的webservice用法,用具体的事例来讲解一个概念我想怎么也要比单纯的说理能让人容易理解吧. 这里,我们将以一个简单的分布式课件搜索系统为例来讲解.使用VS2003为编译环境,C#为语言,SqlServcer2000为数据库.(这个例子来源于一位网上朋友的文章的启发,觉得很能代表webservice的特点,就按那个想法做了这么个系统来示例了) 首先,明确我们要做什么.我们需要一个对客户的接口,也就是个站点,我们把它称做ServiceGatherSite,它是何种形式都无所谓,甚至它本身并不需要数据库,它只是提供给用户一个查询的接口,真正的服务,普通用户是不接触到的.然后,这里我们还需要若干个提供服务的站点,我们可以称它们为资源站,这里为简单起见,假设有两个资源站,分别叫WebSiteA,WebSiteB,它们可以是不对外公布的,只是为了丰富查询数据而存在.最后,是我们最需要关注的东西---资源站提供给ServiceGatherSite的服务.两个资源站,就有两个服务,我们称为SiteAService和SiteBService.两个服务间没有任何关系,内部提供的方法也完全没关联,只是需要把方法如何使用告诉ServiceGatherSite,意思是,服务只提供查询接口,返回的数据如何处理,服务本身并不管,全由使用服务的站点分配. 写了这么多,算是简要的介绍了下有关xml webservice的概念和我们这个例子的结构,下篇文章,我们将开始真正进入代码的设计阶段.

java实现webservice实例

java实现webservice实例 java功能 JavaWebServiceApacheServletXML 研究下WEBSERVICE,从网上找了好多实例,但很多写的让人实在难以恭维,花了三个小时的圈圈转后总算搞通了,其实也挺简单的,这里特别感谢 https://www.sodocs.net/doc/dc2737561.html,/article/java/992.htm 一: 首先创建个WEB工程,然后:https://www.sodocs.net/doc/dc2737561.html,/axis/网站下载Axis安装包.当然还依赖其他包的,我这里在附件里上传了所有应用到得包,方便大家。 二: 然后就写wsdd 文件(注:其实这里真的不用,可以跳过第二步)为了生成这个文件:server-config.wsdd deploy.wsdd: https://www.sodocs.net/doc/dc2737561.html,/axis/wsdd/providers/java"> 在DOS下转换目录到%TOMCAT_HOME%\webapps\axis\WEB-INF,命令: java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient deploy.wsdd

WebService4

利用Java编写简单的WebService实例 使用Axis编写WebService比较简单,就我的理解,WebService的实现代码和编写Java代码其实没有什么区别,主要是将哪些Java类发布为WebService。下面是一个从编写测试例子到发布WebService,以及编写测试代码的过程介绍。 本例子的WebService提供了两个方法,分别是sayHello和sayHelloToPerson,第一个只是返回一个"Hello"字符串,没有参数,第二个函数接受一个字符串作为参数,返回"Hello 参数值",该例子比较简单,但是清楚的说明了从编写代码到发布为WebService以及测试编写好的WebService全过程 使用Axis编写WebService比较简单,就我的理解,WebService的实现代码和编写Java 代码其实没有什么区别,主要是将哪些Java类发布为WebService。下面是一个从编写测试例子到发布WebService,以及编写测试代码的过程介绍。 本例子的WebService提供了两个方法,分别是sayHello和sayHelloToPerson,第一个只是返回一个"Hello"字符串,没有参数,第二个函数接受一个字符串作为参数,返回"Hello 参数值",该例子比较简单,但是清楚的说明了从编写代码到发布为WebService以及测试编写好的WebService全过程。 使用Axis编写WebService比较简单,就我的理解,WebService的实现代码和编写Java 代码其实没有什么区别,主要是将哪些Java类发布为WebService。下面是一个从编写测试例子到发布WebService,以及编写测试代码的过程介绍。 本例子的WebService提供了两个方法,分别是sayHello和sayHelloToPerson,第一个只是返回一个"Hello"字符串,没有参数,第二个函数接受一个字符串作为参数,返回"Hello 参数值",该例子比较简单,但是清楚的说明了从编写代码到发布为WebService以及测试编写好的WebService全过程。

WebService实例详解

WebService实例详解 Web Service是一种新的Web应用程序分支,他们是自包含、自描述、模块化的应用,可以发布、定位、通过Web调用。Web Service可以执行从简单的请求到复杂商务处理的任何功能。一旦部署以后,其他Web Service应用程序可以发现并调用它部署的服务。 Web Service说白了就是一个执行特定功能的组件。只不过这个组件是发布在网上的,只向外界暴露提供服务的接口,具体的执行过程是对外界保密的,相当于一个第三方程序。只要这个web sevice能够被发现,那么所有人都可以使用这个服务。举一个简单的例子,在软件开发过程中,众多的软件都使用到了同一个功能,这个功能可能很复杂也可能很简单,但是如果每个软件都开发一套这样的功能那显然是很浪费资源的,这时我们可以开发一套该功能的实现方法并把这种方法在网络上进行发布,这时众多的软件就不必没人都开发一套该功能了,直接在网上通过调用该web service服务并将执行的结果返回即可。所以web service服务的调用即可用于BS项目,同样也可以用于CS项目,他们的关系可以用下图来简单呈现:

那web service是怎样进行通信的呢? 可以使用标准的互联网协议,像超文本传输协议(HTTP)和XML,将功能纲领性地体现在互联网和企业内部网上。像DCOM、RMI、IIOP等基于组件的对象模型已经流行了较长一段时间了。然而这些模型都是依赖于一个特定的对象模型协议。Web Service扩展了这些模型,使之可以和简单对象访问协议(Simple Object Access Protocol,SOAP)以及XML通信以根除特定对象模型协议带来的障碍。 源码剖析https://www.sodocs.net/doc/dc2737561.html,下webservice的用法 WebService源码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; using System.IO;

axis2开发webservice简单实例

axis2创建web service(一) axis2 是新一代的web service开发工具,它会让你的web service开发变得轻松,快捷。下面让我们以一个实际的例子来体验一下。首先,工欲善其事,必先利其器。就让我们先做好一些必备的准备工作吧。 下载axis2 的2进制的包和war,现在的最新版本是1.4.1 发布时间是地址分别是: https://www.sodocs.net/doc/dc2737561.html,/ws/axis2/1_4_1/axis2-1.4.1-bin.zip https://www.sodocs.net/doc/dc2737561.html,/ws/axis2/1_4_1/axis2-1.4.1-war.zip 把下载后的war放入tomcat的webapps目录里,然后启动tomcat,这样war包就会自动解压为目录axis2(不可以的话,你就自己解压,放在此目录下) 在浏览器中输入http://localhost:8080/axis2/,如果一切正常你会看到下面的画面 就开始准备一下axis2的eclispe的插件了。axis2的eclispe插件分为2个,一个是帮助我们生成aar文件的,另一个是帮我们用wsdl文件生成stub代码的。(注意这两个插件的版本,要用的是1-3-0版本) 下载地址是

https://www.sodocs.net/doc/dc2737561.html,/dyn/mirrors/mirrors.cgi/ws/axis2/tools/1_4_1/axis2-eclips e-service-archiver-wizard.zip https://www.sodocs.net/doc/dc2737561.html,/dyn/mirrors/mirrors.cgi/ws/axis2/tools/1_4_1/axis2-eclips e-codegen-wizard.zip 下载完2个压缩文件后,可以直接把解压后的文件拷贝到plugins目录中,也可以在links 目录中写文件路径的方式来安装插件,安装完插件后,打开eclipse,在package explorer 中点击右键--->选择new---->other 如果安装正确你会看到 这样准备工作就都做好了。接下来就是正式开发了。 开发的过程: 工具都已经准备齐全了。我们来动手做一个小例子来小试牛刀! 这一节我们先利用axis2来发布一个web service 的服务,然后在下一节我们做一客户端来调用这个服务。

axis 实现webservice实例

一、Axis安装 1、环境 J2SE SDK 1.5 or 1.6: 我使用 1.6 Servlet Container: 我使用的Tomcat 6.0 2、到 https://www.sodocs.net/doc/dc2737561.html,/Axis/网站下载Axis安装包 3、先在eclipse下新建web project为WebServiceDemo.在Tomcat的配置xml 配置上:.解压下载的axis安装包,将webapps\axis下的lib文件夹和web.xml文件拷到工程对应目录 4、启动tomcat,访问http://localhost/webservice检查安装是否成功,我的端口设置为80,页面index.html自动跳转后出错,是因为没把类拷入,先不管。 5、以上步骤执行成功,可以开发webservice例子了 Axis支持三种web service的部署和开发,分别为: 1、Dynamic Invocation Interface ( DII) 2、Stubs方式 3、Dynamic Proxy方式 二、编写DII(Dynamic Invocation Interface )方式web服务 1.新建包com.qdl.server,编写服务端程序SayHello package com.qdl.server; public class SayHello { public String getName(String name) { return "hello "+name; } } 2、将源码拷贝到WebRoot下,重命名为 SayHello.jws (注意不用拷上面的package ...行) 3、访问连接http://localhost/webservice/SayHello.jws?wsdl,页面显示Axis 自动生成的wsdl,同时会在WEB-INF下创建jwsClasses文件夹,在此生成SayHello.class文件

WebService性能测试简单分析案例1

WebService性能测试简单分析案例 —大傻 版权声明:本文由BSTT成员收集整理,只作相互交流学习使用,不能作为任何商业用途,转载时请务必标识BSTT统一LOGO,并注明BSTT宗旨(倡导测试开源,分享测试经验)。QQ交流群号:14926562

1测试项说明 ●输入说明 aaa bbb ●输出说明 aaabbbbbbbbbbbbbbb 2测试过程说明 参见《LoadRunner8.0下WebService测试总结.doc》

Xml WebService完全实例解析

首先,我们必须了解什么是webservice.就概念上来说,可能比较复杂,不过我们可以有个宏观的了 解:webservice就是个对外的接口,里面有函数可供外部客户调用(注意:里面同样有客户不可调用的函数).假若我们是服务端,我们写好了个webservice,然后把它给了客户(同时我们给了他们调用规则),客户就可以在从服务端获取信息时处于一个相对透明的状态.即是客户不了解(也不需要)其过程,他们只获取数据. webservice传递的数据只能是序列化的数据,典型的就是xml数据,这里我们也只讨论xml数据的传输. 有了一些对xml webservice的初步了解后,我们将切入正题,即是用一个具体的webservice事例的形式来讲解具体的webservice用法,用具体的事例来讲解一个概念我想怎么也要比单纯的说理能让人容易理解吧. 这里,我们将以一个简单的分布式课件搜索系统为例来讲解.使用VS2003为编译环境,C#为语 言,SqlServcer2000为数据库.(这个例子来源于一位网上朋友的文章的启发,觉得很能代表webservice的特点,就按那个想法做了这么个系统来示例了) 首先,明确我们要做什么.我们需要一个对客户的接口,也就是个站点,我们把它称做ServiceGatherSite,它是何种形式都无所谓,甚至它本身并不需要数据库,它只是提供给用户一个查询的接口,真正的服务,普通用户是不接触到的.然后,这里我们还需要若干个提供服务的站点,我们可以称它们为资源站,这里为简单起见,假设有两个资源站,分别叫WebSiteA,WebSiteB,它们可以是不对外公布的,只是为了丰富查询数据而存在.最后,是我们最需要关注的东西---资源站提供给ServiceGatherSite的服务.两个资源站,就有两个服务,我们称为SiteAService和SiteBService.两个服务间没有任何关系,内部提供的方法也完全没关联,只是需要把方法如何使用告诉ServiceGatherSite,意思是,服务只提供查询接口,返回的数据如何处理,服务本身并不管,全由使用服务的站点分配. 写了这么多,算是简要的介绍了下有关xml webservice的概念和我们这个例子的结构,下篇文章,我们将开始真正进入代码的设计阶段. 这个专题主要讲述的是webservice,因此这里我们的代码以Webservice相关为主,而其他工程,例 如:ServiceGatherSite,WebSiteA等,只将简略介绍. 在VS2003中,开发一个webservice并不是件困难的事,首先,我们新建一个webservice项目(文件->新建->项目->C#->Web服务应用程序) 建完这个工程,我们将看到一个叫Service1.asmx的文件,这就是webservice的标准文件,它也有UI的概念,不过我们一般不关注,因此,我们查看其cs代码文件.如果你什么都还没做的话,将看见一个被注释掉的helloworld的WebMethod,把注释去掉,在运行,你就可以得到最简单的webservice运行实例了.点击"helloworld"将执行其方法.显然,这个函数对我们的意义只在于宏观的了解了下web服务的写法.

相关主题