2016-05-09 46 views
0

PDF formateでクリスタルレポートを自動ポストしようとしています。 私はIDE使用しています:私はエラー以下しまっラインreportDoc.open(report, OpenReportOptions._openAsReadOnly);で上記のコードでのIntelliJのGradleReportClientDocument.open()呼び出しでjava.lang.AbstractMethodErrorエラーが発生しました

public void runApprovedSupplierSiteReport(){ 
    // final Config config = ConfigFactory.instance(Config.class); 

    //CrystalUtil.setupJdbcJndi(Config.getDatabaseServer(), Config.getDatabaseUsername(), Config.getDatabasePassword(), Config.getDatabaseJdbcDriver(), Config.getDatabaseJdbcUrl()); 

    final List<String> paramNames = Config.getMatches(APPROVED_SUPPLIER_SITE_PARAM_REGEX); 
    final Map<String, String> params = new HashMap<>(); 
    for (final String name : paramNames) { 
     final String value = Config.getPqp_Report_ApprovedSupplierSite_Param_$0_Value(name); 
     params.put(name, value); 
    } 

    final ReportClientDocument reportDoc = new ReportClientDocument(); 
    try { 
     // export PDF 
     final String report = Config.getPqp_Report_ApprovedSupplierSite_Rpt(); 
     reportDoc.open(report, OpenReportOptions._openAsReadOnly); 
     CrystalUtil.setParamFields(reportDoc, params); 
     final InputStream is = reportDoc.getPrintOutputController().export(ReportExportFormat.PDF); 

     // 
     final Session session = CmisUtil.createSession(Config.getPdmsAtomPubUrl(), Config.getPdmsUser(), Config.getPdmsPassword(), Config.getPdmsRepositoryId()); 
     final Map<String, Object> properties = DocumentManager.getDocumentProperties(
       DocType.SUPPLIER_REPORTS, 
       DocGroup.MQPSD, 
       SUPPLIER_REPORT_DOC_NUMBER, 
       SUPPLIER_REPORT_NAME, 
       new Date()); 

     final String prefix = ConfigUtil.getEnvironmentPrefix(Config.getTwsEnvironmentCode()); 
     final String docName = prefix + String.format(DocFormat.SUPPLIER_REPORTS, PdmsUtil.getDateAsString(new Date())); 
     final Document document = CmisUtil.createDocument(
       session, 
       docName + ".pdf", 
       "", 
       docName, 
       DocClass.REPORTS, 
       MediaType.PDF.toString(), 
       is, 
       -1, 
       properties); 
     Monitor.getLogger().info("<- PDMS report=" + report + " id=" + document.getId() + " versionSeriesId=" + document.getVersionSeriesId()); 

    } catch (final ReportSDKException e) { 
     String err = e.getMessage(); 
     Monitor.getLogger().error("runApprovedSupplierSiteReport() " + e.getMessage()); 
     logger.error("runApprovedSupplierSiteReport()", e); 
    } catch (final CmisBaseException e) { 
     Monitor.getLogger().error("runApprovedSupplierSiteReport() " + e.getErrorContent()); 
     logger.error("runApprovedSupplierSiteReport()", e); 
    } finally { 
     CrystalUtil.closeQuietly(reportDoc); 
    } 
} 

を:

java.lang.AbstractMethodError: com.businessobjects.reports.sdk.JRCCommunicationAdapter.setProductLocale(Ljava/util/Locale;)V 

at com.crystaldecisions.proxy.remoteagent.z.a(Unknown Source) 
at com.crystaldecisions.sdk.occa.report.application.ReportAppSession.int(Unknown Source) 
at com.crystaldecisions.sdk.occa.report.application.ReportAppSession.initialize(Unknown Source) 
at com.crystaldecisions.sdk.occa.report.application.ClientDocument.new(Unknown Source) 
at com.crystaldecisions.sdk.occa.report.application.ReportClientDocument.new(Unknown Source) 
at com.crystaldecisions.sdk.occa.report.application.ClientDocument.open(Unknown Source) 
at com.crystaldecisions.reports.sdk.ReportClientDocument.open(SourceFile:80) 
at com.processstream.pepsico.pqp.tws.ows.PqpOwsJob.runApprovedSupplierSiteReport(PqpOwsJob.java:264) 
at com.processstream.pepsico.pqp.tws.ows.PqpOwsJobTest.runApprovedSupplierSiteReport_1(PqpOwsJobTest.java:36) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) 
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) 
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) 
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74) 
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:82) 
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72) 
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231) 
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) 
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) 
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) 
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) 
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) 
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) 
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) 
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) 
at org.junit.runners.ParentRunner.run(ParentRunner.java:309) 
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174) 
at org.junit.runner.JUnitCore.run(JUnitCore.java:160) 
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:117) 
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234) 
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 

私はすべての抽象クラスをチェックしているが、すべてのメソッドが定義されています。このエラーを解決するのに誰かが私を助けてくれるか教えてください。

+0

「AbstractMethodError」のJavadocは読んでいますか?それは原因を説明します。 –

答えて

0
void com.businessobjects.reports.sdk.JRCCommunicationAdapter.setProductLocale(Locale) 

この方法では、あなたのコードをコンパイルするために使用されるライブラリのバージョンでは具体的なので、あなたのIDEは、それへの呼番号をコンパイルして幸せでした。

展開場所に存在するライブラリは、このメソッドが抽象型である別のバージョンです。

これはAbstractMethodErrorのJavadocに記述されています

は、アプリケーションがabstractメソッドを呼び出そうとした場合にスローされます。通常、このエラーはコンパイラによって検出されます。このエラーは、実行中のメソッドが最後にコンパイルされた後に、一部のクラスの定義が互換性なく変更された場合にのみ実行時に発生します。

+0

はい私はAbstractMethodErrorについて知っていますが、どのジャーがこの問題を引き起こしているのか正確にはわかりません。 – Sarika

+0

問題は解決しました。私はrasapp.jarとrascore.jarを変更しました。 :) – Sarika

関連する問題