`
步青龙
  • 浏览: 298891 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
72ba33fb-eefe-3de1-bd65-82a6e579265d
Java面试
浏览量:0
社区版块
存档分类
最新评论

WebService(一)

 
阅读更多

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一——使用JDK开发WebService】 WebService是一种基于XML(Extensible Markup Language)的网络服务标准,它允许不同系统间的应用程序进行交互,不受操作系统、编程语言的限制。本篇文章将探讨如何使用...

    Webservice ,C# ,ASP.NET, Webservice 一个完整的例子,vs2008

    Webservice ,C# ASP.NET, Webservice 一个完整的例子,包含服务器端的Webservice 与客户端的调用程序 ,最好把Webservice 挂在本机的IIS上面,我之前没有挂在IIS上面,一直引用不到.例子比较简单,在VS...

    Delphi调用Webservice一个完整的例子

    本文将详细介绍如何利用Delphi来调用由C#开发的Webservice服务,并通过一个具体的例子来演示整个过程。 #### 一、背景介绍 在实际开发中,我们经常会遇到需要跨语言调用的情况。例如,前端可能使用Delphi编写,而...

    Delphi调用WebService的实例(非常经典)[参考].pdf

    在 Delphi 中调用 WebService 是一种非常经典的实例。下面我们将详细介绍 Delphi 调用 WebService 的相关知识点。 首先, Delphi 调用 WebService 需要了解基本概念。WebService 是一种基于 XML 的远程过程调用...

    webservice天气预报

    - WSDL文档随同发布的WebService一同公布,从而让其他系统可以获取调用该服务所需的所有信息。 4. **SOAP(简单对象访问协议)** - SOAP是一种规定了客户端和服务器端之间数据传输标准格式的协议。 - SOAP消息...

    Xfire Spring Hibernate 发布WebService(源码)

    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 示例,并深入探讨其中的关键概念和技术细节。 ### 一、WebService 概念 #### 1.1 WebService 定义 WebService 是一种支持通过网络进行调用的服务形式,...

    WebService教程+实例+代码提示功能WebService实例.rar

    WebService是Web服务的一种标准协议,它允许不同系统之间的应用程序通过Internet进行通信。这个"WebService教程+实例+代码提示功能WebService实例.rar"压缩包文件显然包含了关于WebService的学习资料、实例代码和...

    webservice 第一个小项目

    本项目以"webservice 第一个小项目"为主题,将带你入门Java实现的WebService技术。 首先,我们需要了解WebService的基本概念。WebService是一种基于开放标准(如XML、SOAP、WSDL和UDDI)的互联网协议,它能够使应用...

    WebService在.NET中的实战应用一

    创建一个ASMX WebService非常简单,只需要创建一个新的ASP.NET Web Application项目,然后添加一个名为*.asmx的Web服务文件。在该文件中,我们可以定义服务方法,这些方法会被公开为SOAP Web服务。例如: ```csharp...

    webservice获取List案例

    在本案例中,我们关注的是一个特定的Web服务类型——WebService,它用于获取一个包含泛型对象的List。这个场景在分布式系统、微服务架构或者跨平台数据共享中非常常见。让我们深入探讨一下相关的知识点。 1. **...

    webservice

    #### 一、WebService简介 WebService是一种标准的跨平台通信方式,它允许在不同技术栈之间进行数据交换和服务交互。通过WebService,可以在不同的应用程序之间共享业务逻辑、数据和功能,这有助于提高软件的可重用...

    Idea实现WebService实例

    在Java开发中,WebService是一种常见的跨平台、跨语言的通信方式,它允许不同的应用程序之间交换数据。IntelliJ IDEA(简称Idea)是广受欢迎的Java集成开发环境,提供了强大的支持来创建和调试WebService。本教程将...

    java搭建一个简单的WebService

    Java 搭建一个简单的WebService Java 搭建一个简单的WebService 的主要知识点可以总结为以下几个方面: 1. 什么是 WebService? WebService 是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中...

    WebServiceStudio.zip

    WebService是一种基于Web的、平台无关的交互方式,它允许不同的应用程序之间进行数据交换和业务逻辑共享。WebService的核心技术是XML(可扩展标记语言)、SOAP(简单对象访问协议)、WSDL(Web服务描述语言)以及...

    WebServiceStudio webservice测试工具

    WebServiceStudio是一款轻量级的Web服务测试工具,它允许开发者无需编写任何代码就能对Web服务进行快速、便捷的测试。这个工具特别适用于那些需要验证Web服务功能或调试接口的IT专业人员。在本文中,我们将深入探讨...

    在WinForm程序中调用WebService

    在WinForm应用程序中调用WebService是一项常见的任务,它允许客户端应用程序与远程服务器上的服务进行交互,从而实现数据交换和功能扩展。以下是如何在WinForm中实现这一操作的详细步骤及涉及的相关知识点: 1. **...

    java调用json参数的webservice

    为了使得Java客户端能够调用WebService服务,需要使用一些工具,例如JAX-WS(Java API for XML Web Services),它是Java SE的一部分,用于创建WebService客户端和服务端。 综上所述,通过Java调用带有JSON参数的...

    webservice测试调用工具WebserviceStudio20

    WebserviceStudio是一款强大的Web服务测试和调用工具,版本为20。这款工具主要帮助开发者和测试人员方便地测试和调试他们的Web服务。以下是WebserviceStudio的一些核心功能和相关知识点: 1. **图形化界面**:...

Global site tag (gtag.js) - Google Analytics