`

Java 访问sharepoint webservice(NTLM & SSL)

 
阅读更多
引用
遇到需要使用java访问微软的sharepoint的webservice, 公司服
务器配置的是NTLM+SSL验证
解决办法: 
jdk6支持ntlm和SSL, 同时使用jdk6 webservice做客户端


1 sharepoint wsdl
https://server/_vti_bin/lists.asmx?WSDL


2 使用如下命令生成webservice客户端代码,将会有很多java类生成
wsimport  -d  ./bin  -s  ./src -p test.jws.client.ref ./wsdl/citi.sharepoint.wsdl




3 子类化一个Authenticator,用于NTLM验证
public class DefaultAuthenticator extends Authenticator {
	private static String username = "...";
	private static String domain = "...";
	private static String password = ".....!";
	
	public PasswordAuthentication getPasswordAuthentication() {
		String usernamewithdomain = domain + "/ " + username;
		return (new PasswordAuthentication(usernamewithdomain, password.toCharArray()));
	}
}


4 main方法内有信任所有证书的代码,解决ssl证书,同时有访问ws的客户端调用
public static void main(String[] args) throws NoSuchAlgorithmException, KeyManagementException {
		//NTLM Auth
		Authenticator.setDefault(new DefaultAuthenticator());

		//trust all the SSL  cert --start
		TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
			public java.security.cert.X509Certificate[] getAcceptedIssuers() {
				return null;
			}

			public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) {
			}

			public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) {
			}
		} };
		HostnameVerifier dummyHostnameVerifier = new HostnameVerifier() {
			public boolean verify(String hostname, SSLSession session) {
				return true;
			}
		};
		SSLContext sc = SSLContext.getInstance("SSL");
		sc.init(null, trustAllCerts, new SecureRandom());
		HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
		HttpsURLConnection.setDefaultHostnameVerifier(dummyHostnameVerifier);
		//trust all the SSL cert -- end
		
		// ws client call
		ListsSoap list = new Lists().getListsSoap();
		System.out.println(list.getListCollection().getContent().size());
	}
  • 大小: 8.2 KB
分享到:
评论

相关推荐

    普通java访问c# webService

    本示例介绍的是如何使用Java来访问由C#编写的WebService服务。WebService是一种基于互联网的、平台无关的通信机制,它允许不同系统间的应用程序通过网络进行交互。 首先,我们需要理解WebService的基本原理。...

    java访问.net webservice获取与设置cookie

    本篇文章将深入探讨如何使用Java访问.NET Web服务,并在过程中获取和设置Cookie,以便实现更高效、安全的会话管理。首先,让我们理解Web服务的基本概念。 Web服务是一种通过HTTP协议提供功能的方法,使得不同系统间...

    用Java程序访问Net WebService.doc

    Java 访问 Net WebService 详解 Java 访问 Net WebService 是一种常见的应用场景。随着WebService 的普及,如何使用 Java 程序访问 Net WebService 成为了一个热门话题。本文将详细介绍如何使用 Java 程序访问 ...

    java调用C++ webservice

    本话题主要探讨如何使用Java调用由C++实现的Web服务(Webservice)。在给出的描述中,提到了通过WSDL(Web Services Description Language)文件来实现这一目标。以下是关于这个主题的详细知识点: 1. **Web服务...

    C#调用JavaWebService

    调用WebService,最简单的办法当然是直接添加WEB引用,然后自动产生代理类,但是在调用JAVA的WebService时并没有这么简单,特别是对于SoapHeader的处理,通过C#添加Web引用方式访问JavaWebService的方法,除了string...

    Aixs2调用SharePoint Webservice实现文件上传下载

    本文将深入探讨如何使用Axis2这个Java Web服务客户端框架来调用SharePoint的Web服务,以实现文件的上传、下载以及删除功能。 首先,我们需要了解**Axis2**。它是Apache软件基金会开发的一个开放源码的Web服务框架,...

    java android 调用webservice

    本篇将详细讲解如何在Android应用中使用Java调用Webservice。 一、理解Web服务 Web服务是一种基于互联网的、标准化的服务交互方式,它允许不同系统之间的应用程序共享数据和功能。常见的Web服务有SOAP(Simple ...

    java调用webservice.zip

    java调用webservicejava调用webservice.zipjava调用webservice.zipjava调用webservice.zipjava调用webservice.zipjava调用webservice.zipjava调用webservice.zipjava调用webservice.zipjava调用webservice.zipjava...

    java定时进行webservice数据上报

    Java定时进行WebService数据上报是一种常见的任务调度需求,用于定期向远程服务器发送数据,例如日志、统计信息或者业务数据。这个过程涉及到Java编程语言、WebService技术和时间触发机制。以下将详细讲解这些知识点...

    C#调用java发布的WebService终稿.pdf

    C# 调用 Java 发布的 WebService 终稿 C# 调用 Java 发布的 WebService 是一种常见的跨语言通信方式。在本文中,我们将介绍如何使用 C# 调用 Java 发布的 WebService。 标题解释 C# 调用 Java 发布的 WebService ...

    java 调用https webservice实例及axis包

    在Java中,通过`javax.net.ssl`包提供的类可以支持HTTPS连接。 Apache Axis是一款开源的Web Service框架,它使得Java开发者能够方便地创建和调用Web Service。对于HTTPS的支持,Axis提供了相应的配置和工具。 调用...

    Java 访问.Net Webservice 源码,SOAP方式与普通请求方式

    Java 访问.Net Webservice 的源码 源码分为两个文件,1.SOAP方式,2.普通方式 SOAP请求使用的是java自带的 SOAPXML请求方式,注释超多,全都是手工写,并且测试通过。 普通方式是使用普通请求页面的方式请求,比较...

    java 调用 odi webservice

    Java 调用 ODI webservice 实现数据同步 Java 调用 ODI webservice 是实现数据同步的一种常见方式。ODI(Oracle Data Integrator)是一种数据集成平台,提供了webservice接口,允许用户通过webservice调用ODI方案...

    SAP&Java的Webservice实例

    SAP&Java的Webservice实例 Webservice 是一种基于 SOAP 传输协议,用 WSDL 描述,用 XML 封装数据的接口技术。由于其跨平台、跨防火墙、开发成本低、开发周期短等优势而被广泛应用,但也有局限性,包括传输负载大、...

    java发布webservice接口

    java开发过程中,很多地方都会遇到数据传递,远程获取数据问题,我这个简单的webservice接口发布可以在java开发过程中,很多地方都会遇到数据传递,远程获取数据问题,我这个简单的webservice接口发布可以在

    java axis 调用webservice服务端

    Java Axis调用WebService服务端是Java开发者在进行分布式系统交互时常见的一种技术实践。Axis是Apache软件基金会开发的一个开源项目,它提供了一种方便、高效的方式,使得Java应用程序能够作为客户端来消费或作为...

    Java访问c#开发的webservice

    ### Java访问C#开发的Webservice详解 #### 一、引言 在现代软件开发过程中,尤其是对于大型项目而言,采用分布式系统架构已经成为一种常态。分布式应用能够将复杂的业务逻辑分解并部署到不同的服务器上,从而提高...

    java 利用webservice传输文件

    在“java 利用webservice传输文件”的场景中,JACOB可能被用来执行以下任务: 1. **文件操作**:Windows系统有许多内置的COM组件,如Scripting.FileSystemObject,可用于读写文件、创建目录等。通过JACOB,Java程序...

    java版WebService生成客户端和服务端的实例

    在Java世界中,WebService是一种基于XML的开放标准技术,它允许不同系统间的应用程序进行通信,跨越不同的操作系统和编程语言。本实例将详细讲解如何使用Apache Axis1.4工具来生成Java版的WebService服务端和客户端...

    Java使用SOAP获取webservice实例解析

    ### Java使用SOAP获取WebService实例解析 #### WebService简介 WebService是一种跨编程语言和操作系统平台的、在网络上进行数据交换的一种方式。它使用标准的Internet协议,如HTTP、XML、SOAP等来实现不同系统间的...

Global site tag (gtag.js) - Google Analytics