`
yuebo
  • 浏览: 15835 次
社区版块
存档分类
最新评论

java调用SQL Server Reporting Services

    博客分类:
  • java
阅读更多

最近研究了一下SQL Reporting Services,  在这mark一下。

 

Java调用SSRS,其实是调用了SSRS提供的一些webservice。

WSDL:

http://localhost:18080/ReportServer/ReportExecution2005.asmx

 

首先下载axis2,

运行命令wsdl2java -uri ReportExecution2005.asmx.wsdl 生成java客户端代码。

 

接着要实现ntlm验证

 

private static void setupCredential() {
		  final NTCredentials nt = new NTCredentials("user", "password", "host", "domain");
		  final CredentialsProvider myCredentialsProvider = new CredentialsProvider() {
		   public Credentials getCredentials(AuthScheme scheme, String host, int port, boolean proxy) throws CredentialsNotAvailableException {
		    return nt;
		   }
		  };
		  DefaultHttpParams.getDefaultParams().setParameter("http.authentication.credential-provider", myCredentialsProvider);
		 }

 注意,这边不能直接用axis2生成的代码,打开ReportExecutionServiceStub.java,修改soap version

 

//Set the soap version
            _serviceClient.getOptions().setSoapVersionURI(org.apache.axiom.soap.SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);

  下面是完整的测试代码

 

import java.io.FileOutputStream;
import java.io.InputStream;

import org.apache.commons.httpclient.Credentials;
import org.apache.commons.httpclient.NTCredentials;
import org.apache.commons.httpclient.auth.AuthScheme;
import org.apache.commons.httpclient.auth.CredentialsNotAvailableException;
import org.apache.commons.httpclient.auth.CredentialsProvider;
import org.apache.commons.httpclient.params.DefaultHttpParams;

import com.microsoft.schemas.sqlserver._2005._06._30.reporting.reportingservices.ReportExecutionServiceStub;


public class Test {
	public static void main(String[] args) throws Exception {
		setupCredential();
		ReportExecutionServiceStub es=new ReportExecutionServiceStub("http://localhost:18080/ReportServer/ReportExecution2005.asmx");
		ReportExecutionServiceStub.LoadReport lr= new ReportExecutionServiceStub.LoadReport();
		lr.setReport("/Report Project1/Test Report");
		
		ReportExecutionServiceStub.LoadReportResponse info=es.loadReport(lr, null);
		
		ReportExecutionServiceStub.SetExecutionParameters param=new ReportExecutionServiceStub.SetExecutionParameters();
		ReportExecutionServiceStub.ArrayOfParameterValue ps =new ReportExecutionServiceStub.ArrayOfParameterValue();
		ReportExecutionServiceStub.ParameterValue pv=new ReportExecutionServiceStub.ParameterValue();
		pv.setValue("8888");
		pv.setName("id");
		ps.addParameterValue(pv);
		param.setParameters(ps);
		ReportExecutionServiceStub.ExecutionHeaderE eh=new ReportExecutionServiceStub.ExecutionHeaderE();
		ReportExecutionServiceStub.ExecutionHeader header=new ReportExecutionServiceStub.ExecutionHeader();
		
		header.setExecutionID(info.getExecutionInfo().getExecutionID());
		eh.setExecutionHeader(header);
		es.setExecutionParameters(param, eh, null);
		
		
		ReportExecutionServiceStub.Render render=new ReportExecutionServiceStub.Render();
		render.setFormat("PDF");
		ReportExecutionServiceStub.RenderResponse res=es.render(render, eh, null);
		InputStream in=res.getResult().getInputStream();
		
		FileOutputStream out=new FileOutputStream("Test Report.pdf");
		byte [] buff=new byte[1024];
		int lenth=-1;
		while ( ( lenth=in.read(buff))!=-1) {
			out.write(buff,0,lenth);
			
		}
		out.close();

	}
	private static void setupCredential() {
		  final NTCredentials nt = new NTCredentials("user", "password", "host", "domain");
		  final CredentialsProvider myCredentialsProvider = new CredentialsProvider() {
		   public Credentials getCredentials(AuthScheme scheme, String host, int port, boolean proxy) throws CredentialsNotAvailableException {
		    return nt;
		   }
		  };
		  DefaultHttpParams.getDefaultParams().setParameter("http.authentication.credential-provider", myCredentialsProvider);
		 }
}
 

 

分享到:
评论
2 楼 TX归心 2018-08-12  
您好 把您的代码还原好后执行到ReportExecutionServiceStub.LoadReportResponse info = es.loadReport(lr, null);就不走了请问是哪里出了问题? 求解答感激不尽.QQ316603195
1 楼 wangguoqing_it 2012-03-27  
哥们,这是怎么实现啊,请赐教!加qq  602996488 请指导!感激不尽

相关推荐

    A Java proxy for MS SQL Server Reporting Services

    这篇文章主要讨论了Java Web应用程序如何与Microsoft SQL Server Reporting Services (RS)集成,以及RS作为一种企业级报告工具的潜力。首先,文章提到了在Web应用程序中生成高质量打印输出的挑战,指出浏览器在文档...

    SQL Server 2008 Reporting Services

    SQL Server 2008 Reporting Services 是微软提供的一款强大的商业智能工具,主要用于生成、管理和分发各种报表。这个入门教程涵盖了从安装配置到高级特性的全方位指导,旨在帮助用户掌握这款强大工具的使用。 首先...

    Pro SQL Server 2008 Reporting Services.pdf

    本书旨在为读者提供一个逐步深入的过程,帮助他们掌握如何使用SQL Server 2008 Reporting Services来创建高效且实用的企业报表。 - **Rodney Landrum**:拥有超过20年的信息技术领域经验,专注于数据库管理和开发。...

    基于SQL Server Reporting Services使用的设计和编程.pdf

    "基于SQL Server Reporting Services的设计和编程" 在现代化社会中,计算机技术的发展需求日益增进,信息管理系统也在不断发展, SQL Server Reporting Services 作为一种基于服务器的新型报表平台,提供了强大的...

    充分利用 SQL Server Reporting Services 图表

    【SQL Server Reporting Services 图表详解】 SQL Server Reporting Services (SSRS) 是 Microsoft 提供的一款强大的报表工具,它允许用户创建丰富的交互式报表,其中包括图表。图表是数据可视化的关键元素,能够...

    Microsoft-SQL Server 2008 Reporting Services Step by Step(2009) 随书光盘

    《Microsoft SQL Server 2008 Reporting Services Step by Step(2009)》随书光盘包含了丰富的学习资源,旨在帮助用户深入理解和掌握SQL Server 2008 Reporting Services的功能与应用。这本书的重点在于实践操作,...

    JSP嵌套SQL Server Reporting Services报表.pdf

    JSP(JavaServer Pages)是一种基于Java的服务器端脚本语言,常用于创建动态网页。SQL Server Reporting Services(SSRS)是微软提供的一个用于生成和分发报告的服务器端解决方案。这篇文章主要探讨如何在JSP中嵌套...

    Microsoft SQL Server 2000 Reporting Services发布.pdf

    对于使用SQL Server Reporting Services的IT专业人士来说,微软的技术支持网站、官方文档以及专业社区和论坛是获取最新信息、解决问题的重要资源。通过这些渠道,用户可以获得针对报表服务的具体使用技巧和故障排除...

    sqlserver2008-reportservices-sample

    这个"sqlserver2008-reportservices-sample"很可能是包含SQL Server 2008 Reporting Services的示例数据和配置文件,旨在帮助用户理解和学习如何有效地使用这一服务。 SQL Server 2008 Reporting Services的核心...

    Professional.SQL.Server.2005.Reporting.Services

    根据提供的信息,我们可以总结出关于《Professional SQL Server 2005 Reporting Services》一书的关键知识点,主要包括SQL Server 2005 Reporting Services的基本概念、功能特性及其在企业级数据报告中的应用。...

    SQLServer2012ReportingServices

    此外,书中还涉及了报表的开发和部署等其他高级话题,例如使用SQL Server Data Tools进行 Reporting Services 报表设计,以及报表的渲染和发布过程。 本书作者包括 Reporting Services 领域的权威专家,他们凭借...

    [Microsoft SQL Server 2005 Reporting Services专家教程]源文件

    综上所述,本教程将全面覆盖Microsoft SQL Server 2005 Reporting Services的各项功能和使用技巧,无论你是数据库管理员、开发人员还是业务分析师,都能从中受益,提升你的报表设计和管理能力。通过深入学习和实践,...

    Pro SQL Server 2012 Reporting Services, 3rd Edition

    《Pro SQL Server 2012 Reporting Services, 3rd Edition》是一本由Apress出版的专业书籍,主要介绍了SQL Server 2012 Reporting Services的功能、使用方法和最佳实践。 Reporting Services是微软SQL Server数据库的...

    Microsoft_SQLServer_2008_Reporting_Services应用系列(五)仪表篇

    总之,Microsoft SQL Server 2008 Reporting Services的仪表功能强大且灵活,通过熟练掌握其使用方法,我们可以创建出极具洞察力的报表,助力企业决策者做出基于数据的明智决策。在实际工作中,不断实践和探索这些...

    ReportingServices部署

    1. 使用SQL Server安装向导:在安装过程中选择“Reporting Services”组件,根据向导指示配置安装类型、服务账户、安装位置等。 2. 配置Reporting Services:安装完成后,需要通过Reporting Services配置工具进行...

    Microsoft SQL Server 2012 Analysis Services 高级教程 pdf

    标签“SQL SERVER”表明,教程还会涉及SQL Server的其他组件,如Integration Services (SSIS) 和 Reporting Services (SSRS),这些都是BI解决方案的重要组成部分。读者将了解到如何使用SSIS进行数据抽取、转换和加载...

    Pro SQL Server 2008 Reporting Services 数据库

    《Pro SQL Server 2008 Reporting Services》是SQL Server 2008数据库系统中关于报表服务的一本权威指南,旨在帮助读者深入理解和掌握SQL Server 2008中的Reporting Services功能。这本书以PDF格式的英文版呈现,是...

Global site tag (gtag.js) - Google Analytics