尝试集成Java和SSRS 2012
我正在尝试编写一个Java应用程序,它将显示来自SSRS2012的报告。我设置了web服务代理,并使用以下代码尝试登录到服务器:尝试集成Java和SSRS 2012,java,sql-server,reporting-services,Java,Sql Server,Reporting Services,我正在尝试编写一个Java应用程序,它将显示来自SSRS2012的报告。我设置了web服务代理,并使用以下代码尝试登录到服务器: try { ReportExecutionServiceSoapStub service = getService(); System.out.println("ADP1N: Test.main, Checkpoint Bravo..."); service.logonUser("CAMPUSAD/<username>", "<
try
{
ReportExecutionServiceSoapStub service = getService();
System.out.println("ADP1N: Test.main, Checkpoint Bravo...");
service.logonUser("CAMPUSAD/<username>", "<password>", "");
} catch (Exception e)
{
e.printStackTrace();
}
我的rsreportserver.config文件包含以下身份验证条目:
关
代理
真的
我不确定我在这里做错了什么。没有看到方法“GetService()”是什么,并且您需要做一些事情来验证服务。首先,我想看看你是否可以在本地测试一些代码,如果你知道某个用户对这个网站有管理员权限的话。我已经编写了与ssr对话的代码,但只在C#NET中编写,但我对Java还不确定。现在,我知道有几种从SSR获取数据的方法:
<form id="ssrsform" action="(link above or similar)" method="post" target="_self" >
.....(options and settings)....
</form>
如果从Windows 7调用报告,可能必须使用NTLM V2身份验证,如下所述。我们已经实现了相同的逻辑(只删除了日志),并且能够解决这个问题
.我的jsp页面中确实有链接,这些链接引用了bullet#1中的报告。问题是,它随后要求登录。我正在试图找到一种自动登录的方法,因为最终报表门户将由我们的本地安全保护,我认为客户端不会希望登录两次。这很可能是由SSRS服务器处理的。当您直接转到链接时,您需要通过将数据源设置为引用设置的用户和密码,将数据源处理为自包含。你在这么做吗?还是设置为“使用Windows身份验证”?您可以在生成报表时选择“使用此名称和密码”,它们将引用连接字符串本身中包含的凭据。我不尝试验证数据源,这已在报表本身中处理。我想做的是绕过当我点击链接时出现的登录窗口。此链接位于用户将已经登录的应用程序中,我认为如果用户必须再次登录才能查看报表,他们会很恼火。如果我转到http://(servername)/(reportpath)它不需要身份验证,除非数据源未设置为在使用IE时使用嵌入式身份验证。否则,只会出现报告。您是否正在尝试使用IE以外的浏览器?我的建议是,由于这是所有与身份验证相关的,所以请尝试首先潜在地命中根节点。如果无法通过身份验证访问http://(servername)/ReportServer,则可能与未在站点上设置权限的用户有关。代码中的用户是否经过测试,可以在AD权限下手动访问站点?数据源密码存储在报告中。web应用程序位于不同的服务器上,无论我们使用什么浏览器
<form id="ssrsform" action="(link above or similar)" method="post" target="_self" >
.....(options and settings)....
</form>
ReportExecutionService rs = new ReportExecutionService();
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
rs.Url = "http://myserver/reportserver/ReportExecution2005.asmx";