`
darrenzhu
  • 浏览: 799558 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

web service https client example

    博客分类:
  • Java
阅读更多
import java.io.InputStream;
import java.security.KeyStore;
import java.util.Arrays;
import javax.net.ssl.TrustManager;
import javax.net.ssl.TrustManagerFactory;
import org.apache.cxf.configuration.jsse.TLSClientParameters;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.frontend.ClientProxy;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import org.apache.cxf.transport.http.HTTPConduit;
import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * Since Jdk1.5, enumeration is the best way to implement an anti-attack
 * singleton instance.
 * 
 */
public enum WsPort {
    Instance;
    private static Logger log = LoggerFactory.getLogger(WsPort.class);

    @SuppressWarnings("unchecked")
    public <E> E getSSLPort(Class<E> wsImplementationClass, String trustStoreFiltePath, String trustStorePassWord, String wsURLAdress) {
	E port = null;
	try {
	    if (port == null) {
		JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
		factory.setServiceClass(wsImplementationClass);
		factory.setAddress(RwaCfgUtil.getInstance().getRwaWebServiceProperty(wsURLAdress));
		port = (E) factory.create();
		Client proxy = ClientProxy.getClient(port);
		HTTPConduit conduit = (HTTPConduit) proxy.getConduit();
		HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
		httpClientPolicy.setConnectionTimeout(6000000);
		httpClientPolicy.setReceiveTimeout(6000000);
		conduit.setClient(httpClientPolicy);
		TLSClientParameters tlsParams = conduit.getTlsClientParameters();
		if (tlsParams == null) {
		    tlsParams = new TLSClientParameters();
		}
		tlsParams.setSecureSocketProtocol("SSL");
		tlsParams.setDisableCNCheck(true);
		tlsParams.setTrustManagers(getTrustManagers(trustStoreFiltePath, trustStorePassWord));
		conduit.setTlsClientParameters(tlsParams);
	    }
	} catch (Exception e) {
	    log.error("Init port failed!" + Arrays.toString(e.getStackTrace()));
	}
	return port;
    }

    private TrustManager[] getTrustManagers(String trustStoreFiltePath, String trustStorePassWord) throws AppException {
	try {
	    InputStream fp = null;
	    String alg = TrustManagerFactory.getDefaultAlgorithm();
	    TrustManagerFactory factory = TrustManagerFactory.getInstance(alg);
	    KeyStore ks;
	    try {
		fp = MyManager.class.getClassLoader().getResourceAsStream(CfgUtil.getInstance().getWebServiceProperty(trustStoreFiltePath));
		ks = KeyStore.getInstance("JKS");
		ks.load(fp, CfgUtil.getInstance().getWebServiceProperty(trustStorePassWord).toCharArray());
	    } finally {
		if (fp != null) {
		    fp.close();
		}
	    }
	    factory.init(ks);
	    TrustManager[] tms = factory.getTrustManagers();
	    return tms;
	} catch (Exception e) {
	    e.printStackTrace();
	    throw new AppException(e);
	}
    }
}

分享到:
评论

相关推荐

    用c# 写web service客户端,ip地址查询

    在弹出的对话框中输入Web Service的URL,通常是"http://example.com/Service.asmx"。VS2008会自动生成一个代理类,用于与Web Service交互。 3. **编写代码**:在C#代码文件中,引入生成的服务代理类,如`using ...

    动态调用Web Service的例子

    在IT行业中,Web Service是一种基于网络的、松散耦合的软件组件,它允许不同的应用程序之间进行数据交换和功能调用。本示例是关于如何使用C#和.NET Framework 2.0动态调用Web Service的实践应用。下面将详细阐述相关...

    asp Web Service 创建调用.rar

    ASP Web Service是微软.NET框架下的一种技术,用于构建可以跨平台、跨网络的Web服务。在本教程中,我们将深入探讨如何创建和调用ASP Web Service,通过提供的"视频--asp Web Service 创建调用.rar"资源,你可以跟随...

    C#利用Web Service发送邮件

    本篇文章将深入探讨如何使用C#结合Web Service来发送电子邮件,这是一项常见的任务,尤其是在自动化流程、通知系统或者客户服务中。 首先,我们要了解Web Service的概念。Web Service是一种通过网络提供服务的方式...

    web service接口实现类

    在本项目中,我们将深入探讨Web Service接口及其Java中的实现类,以理解其工作原理、创建过程以及如何在实际开发中应用。 首先,Web Service是一种基于开放标准(如XML、SOAP、WSDL和UDDI)的协议,它允许不同平台...

    MyEclipse 7 在WebLogic 9.2 上开发Web Service范例

    添加 XFile 的 Web Service Client 的库 为了让项目能够调用 Web Service,需要添加相应的客户端库支持: 1. 右键点击项目(例如:“testws”)。 2. 选择“Properties”&gt; “Java Build Path”。 3. 在...

    XFire Java Web Service 客户端

    《XFire Java Web Service 客户端详解》 在当今的软件开发中,Web服务已经成为分布式系统间交互的重要手段。XFire,作为一个历史悠久的Java Web Service框架,为开发者提供了便捷的方式来创建、部署和消费Web服务。...

    JAVA调用.NETWeb Service完整代码

    标题"JAVA调用.NET Web Service完整代码"表明我们将探讨Java如何通过SOAP(Simple Object Access Protocol)或者RESTful API与.NET Web服务进行交互。 首先,我们要理解.NET Web Service的本质,它是一种基于HTTP...

    xfire实现Web Service

    Web Service是一种采用统一的XML(可扩展标记语言)格式来定义和交换数据的软件组件。它通过SOAP(简单对象访问协议)进行通信,WSDL(Web服务描述语言)描述服务接口,而UDDI(统一描述、发现和集成)则用于服务的...

    XFire+Spring发布Web Service(一)

    压缩包中的"serviceclient"可能是客户端的示例代码或配置文件。这可能包含了一个简单的Java类,展示了如何通过Spring的`JaxWsPortProxyFactoryBean`来创建Web服务客户端,并且可能包含了一些测试方法来展示如何调用...

    xfire web service调用代码

    三、XFire与Web Service调用 在Java中,使用XFire调用Web服务的基本步骤如下: 1. 创建客户端代理:XFire使用WSDL文档生成客户端代理类。这个代理类提供了服务方法的直接访问,就像调用本地方法一样。可以使用XFire...

    php创建web service实例代码

    Web服务(Web Service)是一种基于网络的、标准化的模块化接口,允许不同的应用程序之间进行通信。在PHP中,创建Web服务通常使用SOAP(Simple Object Access Protocol)或REST(Representational State Transfer)这...

    webservice基于JDK演示service与client以及所需jar

    **四、消费Web服务(Client端)** 1. **再次使用wsimport**:同样的,客户端也需要使用`wsimport`工具,但这次是从服务端提供的WSDL生成客户端的Stub类,这些类将用于与服务端交互。 2. **调用Web服务**:在客户端...

    xml web client(2)

    WCF也支持生成服务代理,但使用的是`Add Service Reference`功能。 10. **测试和调试**: 使用`Fiddler`或`Wireshark`等网络抓包工具可以帮助你测试和调试Web服务调用,查看实际发送和接收的数据。 通过以上步骤...

    java调用hessianphp写得web service

    在本示例中,"ExampleImp.java"和"Example.java"代表Java端的服务接口和服务实现,而"Test.java"是客户端代码,用于调用Web服务。 为了在Java中使用Hessian,我们首先需要引入Hessian库。"hessian-3_2-snap.jar...

    实现webServices接口调用demo

    Web服务是一种基于网络的、平台无关的交互方式,允许不同系统之间进行数据交换。在Java中,XFire是一个流行的框架,用于快速开发和部署Web服务。本教程将深入讲解如何使用XFire在Java环境中实现Web服务接口的调用,...

    从android中调用web service的源码

    在Android开发中,调用Web Service是常见的数据交互方式,特别是对于需要远程获取或发送数据的应用来说至关重要。Web Service通常采用SOAP(Simple Object Access Protocol)或REST(Representational State ...

    java生成webservice代码用到的jar

    1. **服务接口(SEI, Service Endpoint Interface)**:这是定义Web服务公开操作的地方,使用`@WebService`注解标识。例如: ```java @WebService public interface HelloWorld { @WebMethod String sayHello...

    基于 xfire 建 web service

    - `web_service`:可能包含了整个Web服务项目的源代码,包括服务接口、实现类、配置文件等。 - `WSservice`:这部分可能包含的是服务端的代码或者配置,如服务接口和XFire的配置。 - `WSClient`:这部分可能是Web...

    Web Service编程:用C#_NET开发网络服务

    Web服务是一种基于互联网的软件应用,它允许不同的应用程序之间进行通信和数据交换。在本教程中,我们将深入探讨如何使用C#和.NET框架来开发Web服务。C#是一种面向对象的编程语言,与.NET框架结合使用,为创建高效、...

Global site tag (gtag.js) - Google Analytics