有人成功实施了使用 Microsoft SQL Server 2005 Reporting Services 的基于 Java 的解决方案吗?Reporting Services 附带了一组 Web 服务,允许您控制报告的创建、报告的执行等,我刚刚开始开发此集成的 POC。我尚未做出的几个选择是,是否要使用 Axis2 来实现 wsdl-to-java 功能,还是使用 WebLogic 的 clientgen (wsdl 2 java) 解决方案。我想我还可以使用 JAX-WS 和 wsimport。在深入探讨这一点之前,我想看看是否有人使用众多可用选项之一成功地做到了这一点。

过去,我遇到过一些关于如何在 .NET 和 Java Web 服务之间处理 null/blank/empty 的问题,我只是想看看这是否是 SSRS 和 Java 集成的问题。谢谢

有帮助吗?

解决方案

根据我使用 RS 的经验,我建议您选择其他任何东西。我认为 Web 服务部分可以正常工作,但我会担心 RS 如何管理内存以及在做出任何决定之前需要立即运行多少个报告。我今天正在与 RS 的内存管理问题作斗争,即使在顶级硬件上也很难运行大型报告(返回大量行和广泛的结果集)。

话虽如此,如果您认为 RS 可以满足您的使用情况,那么它可能会很好。开发环境很好,很容易理解和布置报告。它的表格布局范例非常好。

其他提示

我只是想回来回答我自己的问题。我从 Axis2 开始,它是 Apache 的 SOAP 实现。使用WSDL2Java生成客户端后,我能够成功调用Microsoft Reporting Services WebService并生成报告,以Excel、PDF、CSV等格式输出。就我而言,我还使用 Axis2 或 HttpClient 的 NTML 身份验证机制,让我的应用程序使用 Active Directory 中的凭据自动“登录”,并生成报告并将其分发给许多用户。

我们已经成功实现了:JBoss 5 -> IIS 代理 -> MS Reporting Services 2008(通过 Web 服务)。

有几个陷阱:MS RS 2008 不再支持“匿名”访问(2005 年支持),并且强制使用 NTLM 身份验证。这在 Java 世界中仍然是一个挑战,没有好的 NTLM 库可用。

为了克服这个问题,我们实现了简单的代理(IIS7 + ashx),它在 RS 上进行 NTLM 身份验证(用户/密码硬编码)并允许 JBoss 匿名访问(通过简单地重写 http 响应)。

工作正常:)

欢呼p

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top