0
私はJasperReports Serverのjrs-rest-java-client APIを使用しています。リモートサーバーにアクセスすると、レポートに使用するデータソース(私の場合はデータベース)を注入したいと思う。私はこのAPIを使用してそれを行うことが可能かどうかわかりません。jrs-rest-java-clientを使用してデータソースをレポートに挿入する
私はJasperReports Serverのjrs-rest-java-client APIを使用しています。リモートサーバーにアクセスすると、レポートに使用するデータソース(私の場合はデータベース)を注入したいと思う。私はこのAPIを使用してそれを行うことが可能かどうかわかりません。jrs-rest-java-clientを使用してデータソースをレポートに挿入する
はい、可能です。これはjasperReports Server v6.2.1でjrs-rest-java-client v6.2.3を使って行う方法です:
// build configuration object
RestClientConfiguration configuration = new RestClientConfiguration("http://localhost:8080/jasperserver");
configuration.setContentMimeType(MimeType.JSON);
configuration.setAcceptMimeType(MimeType.JSON);
configuration.setAuthenticationType(AuthenticationType.SPRING);
configuration.setLogHttp(true);
configuration.setLogHttpEntity(true);
// build client and authenticate
JasperserverRestClient client = new JasperserverRestClient(configuration);
Session session = client.authenticate("jasperadmin", "jasperadmin");
String reportUnitUri = "/path/to/reportUnit";
// first get the version of the reportUnit to prevent update conflicts from optimistic locking
OperationResult<ClientReportUnit> reportUnitOperationResult = session.resourcesService().resource(reportUnitUri).get(ClientReportUnit.class);
Integer reportUnitVersion = reportUnitOperationResult.getEntity().getVersion();
// build patchDescriptor with the dataSource field
PatchDescriptor patchDescriptor = new PatchDescriptor();
patchDescriptor.setVersion(reportUnitVersion);
patchDescriptor.field("dataSource", "/path/to/repository/dataSource");
// apply the patchDescriptor
session.resourcesService().resource(reportUnitUri).patchResource(ClientReportUnit.class, patchDescriptor);