webservice 服务端配置其实很简单 主要是services.xml文件的配置
Eclipse 创建XFire项目的时候要注意不要忘了选择http client ,特别是在客户端里调用的时候
如果没http client 会报错。
提供者 server 调用者client
server 有完整的接口和实现,而client只需要要由其相应的接口即可,而且interface 名字可以不同,但是method名字一定要相同。
验证:
查看wsdl:注意chrome不能查看wsdl的信息,chrome是默认不显示这些的,我们通过审查元素可以在chrome查看到wsdl。
server段只需要配置好services.xml 就OK啦。主要看Client,Client调用可以通过两种方式调用。
1 自己写Client调用
//1.取得WebService的路径
String url = "http://localhost:8080/testWebService/services/testWebService";
//2.创建服务
Service service = new ObjectServiceFactory().create(Sv.class);
//3.创建服务代理
XFireProxyFactory factory = new XFireProxyFactory(XFireFactory.newInstance().getXFire());
//4.调用外部的WebService,建立对象,再测试其方法
try {
Sv obj = (Sv)factory.create(service,url);
System.out.println(obj.HelloWorld("Smith"));
} catch (MalformedURLException e) {
e.printStackTrace();
}
2 生成代码
在客户端项目里面File-->New-->Code generation from wsdl document.
输入服务的wsdl和该Client项目,然后选择要防止的包,Finish。(注意这部操作的时候必须把Service项目用web服务器打开,然后把生成的代码复制到SRC下,删除webroot的)
调用如下:
testWebServiceClient client = new testWebServiceClient ();
testWebServicePortType service = client.gettestWebServiceHttpPort();
System.out.println(service.helloWorld("Smith"));
第三种调用方式:
client = new Client(new URL("http://localhost:8080/testWebService/services/testWebService?wsdl"));
Object[] results = client.invoke("HelloWorld", new Object[] {"yezhu"});
System.out.println((String) results[0]);
XFire安全验证:
出啦防火墙等外面的拦截,XFire也提供了对安全性的验证。
Server端配置:
1:验证 AuthenticationHandler extends AbstractHandler
2: services.xml 为需要安全验证的<bean>加上
<inHandlers>
<handler handlerClass ="com.xxx.AuthenticationHandler" >
</handler >
</inHandlers>
<style>wrapped</style>
<use>literal</use>
<scope>application</scope>
Client
1: public class ClientAuthenticationHandler extends AbstractHandler
2:测试
Service serviceModel = new ObjectServiceFactory().create(Sv.class);
Sv service = (Sv) new XFireProxyFactory().create(serviceModel,
"http://localhost:8080/testWebService/services/testWebService");
XFireProxy proxy = (XFireProxy)Proxy.getInvocationHandler(service);
Client client = proxy.getClient();
//发送授权信息
client.addOutHandler(new ClientAuthenticationHandler("用户名","密码"));
//输出调用web services方法的返回信息
System.out.println(service.dosomething("john "));
如果请求需要验证的话,生成的代码 wsdl2java
Service serviceModel = new ObjectServiceFactory().create(sayhelloPortType.class);
sayhelloPortType service = (sayhelloPortType) new XFireProxyFactory().create((org.codehaus.xfire.service.Service) serviceModel,"http://localhost:8080/WebServiceServer/services/sayhello");
XFireProxy proxy = (XFireProxy)Proxy.getInvocationHandler(service);
Client client = proxy.getClient();
//发送授权信息
client.addOutHandler(new ClientAuthenticationHandler("abcd","1234"));
//输出调用web services方法的返回信息
System.out.println(service.sayHello("jim"));
服务端获得客户端的一些信息这个可以写在AuthenticationHandler,用户每次访问的时候都可以验证IP,同时也可以验证用户名和密 码:
String remoteip= XFireServletController.getRequest().getRemoteAddr();
String uri = cfx.getInMessage().getUri();
System.out.println("服务端得到客户端的ip为:" + remoteip + " URI为:" + uri);
分享到:
相关推荐
【WebService一——使用JDK开发WebService】 WebService是一种基于XML(Extensible Markup Language)的网络服务标准,它允许不同系统间的应用程序进行交互,不受操作系统、编程语言的限制。本篇文章将探讨如何使用...
Webservice ,C# ASP.NET, Webservice 一个完整的例子,包含服务器端的Webservice 与客户端的调用程序 ,最好把Webservice 挂在本机的IIS上面,我之前没有挂在IIS上面,一直引用不到.例子比较简单,在VS...
本文将详细介绍如何利用Delphi来调用由C#开发的Webservice服务,并通过一个具体的例子来演示整个过程。 #### 一、背景介绍 在实际开发中,我们经常会遇到需要跨语言调用的情况。例如,前端可能使用Delphi编写,而...
在 Delphi 中调用 WebService 是一种非常经典的实例。下面我们将详细介绍 Delphi 调用 WebService 的相关知识点。 首先, Delphi 调用 WebService 需要了解基本概念。WebService 是一种基于 XML 的远程过程调用...
- WSDL文档随同发布的WebService一同公布,从而让其他系统可以获取调用该服务所需的所有信息。 4. **SOAP(简单对象访问协议)** - SOAP是一种规定了客户端和服务器端之间数据传输标准格式的协议。 - SOAP消息...
Xfire Spring Hibernate 发布WebService(源码) Xfire1.2 Spring 2.0 Hibernate 3 发布WebService 一、准备工作 1、下载安装MyEclipse6.5 2、下载安装MySQL Server 5.1 3、下载MySQL驱动 mysql-connector-java...
根据提供的文件信息,本文将详细解释一个简单的 WebService 示例,并深入探讨其中的关键概念和技术细节。 ### 一、WebService 概念 #### 1.1 WebService 定义 WebService 是一种支持通过网络进行调用的服务形式,...
WebService是Web服务的一种标准协议,它允许不同系统之间的应用程序通过Internet进行通信。这个"WebService教程+实例+代码提示功能WebService实例.rar"压缩包文件显然包含了关于WebService的学习资料、实例代码和...
本项目以"webservice 第一个小项目"为主题,将带你入门Java实现的WebService技术。 首先,我们需要了解WebService的基本概念。WebService是一种基于开放标准(如XML、SOAP、WSDL和UDDI)的互联网协议,它能够使应用...
创建一个ASMX WebService非常简单,只需要创建一个新的ASP.NET Web Application项目,然后添加一个名为*.asmx的Web服务文件。在该文件中,我们可以定义服务方法,这些方法会被公开为SOAP Web服务。例如: ```csharp...
在本案例中,我们关注的是一个特定的Web服务类型——WebService,它用于获取一个包含泛型对象的List。这个场景在分布式系统、微服务架构或者跨平台数据共享中非常常见。让我们深入探讨一下相关的知识点。 1. **...
#### 一、WebService简介 WebService是一种标准的跨平台通信方式,它允许在不同技术栈之间进行数据交换和服务交互。通过WebService,可以在不同的应用程序之间共享业务逻辑、数据和功能,这有助于提高软件的可重用...
在Java开发中,WebService是一种常见的跨平台、跨语言的通信方式,它允许不同的应用程序之间交换数据。IntelliJ IDEA(简称Idea)是广受欢迎的Java集成开发环境,提供了强大的支持来创建和调试WebService。本教程将...
Java 搭建一个简单的WebService Java 搭建一个简单的WebService 的主要知识点可以总结为以下几个方面: 1. 什么是 WebService? WebService 是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中...
WebService是一种基于Web的、平台无关的交互方式,它允许不同的应用程序之间进行数据交换和业务逻辑共享。WebService的核心技术是XML(可扩展标记语言)、SOAP(简单对象访问协议)、WSDL(Web服务描述语言)以及...
WebServiceStudio是一款轻量级的Web服务测试工具,它允许开发者无需编写任何代码就能对Web服务进行快速、便捷的测试。这个工具特别适用于那些需要验证Web服务功能或调试接口的IT专业人员。在本文中,我们将深入探讨...
在WinForm应用程序中调用WebService是一项常见的任务,它允许客户端应用程序与远程服务器上的服务进行交互,从而实现数据交换和功能扩展。以下是如何在WinForm中实现这一操作的详细步骤及涉及的相关知识点: 1. **...
为了使得Java客户端能够调用WebService服务,需要使用一些工具,例如JAX-WS(Java API for XML Web Services),它是Java SE的一部分,用于创建WebService客户端和服务端。 综上所述,通过Java调用带有JSON参数的...
Web服务(WebService)是一种基于互联网的、平台独立的交互方式,它允许不同系统之间的应用程序进行通信。WebServiceStudio是一款专门用于调试和测试Web服务的工具,尤其适用于开发人员在开发过程中验证和测试Web...