Willkommen, Gast
Home › Foren › Nuclos Konfiguration › Formulare › Parameter „Datasource Expression“ erzeugt Fehler
Guten Morgen,
ich hab ein Report mit Supreport erstellt (iReport), soweit war alles ok.
Dann hab ich nach dem Beispiel im Wiki den Report für Nuclos (Ver. 3.13.6) vorbereitet.
Wenn der Parameter „Datasource Expression“ laut Wiki eingetragen wird (Anlage Nuclos Fehler Report2): ((org.nuclos.server.report.api.JRNuclosDataSource)$P{REPORT_DATA_SOURCE}).getDataSource(„Testabfrage“)
erscheint beim Ausdruck im Nuclos die Fehlermeldung:
Anlage:Nuclos Fehler Report1
Und im Serverlog:
2013-06-25 07:46:06,117 INFO [org.nuclos.server.common.NuclosRemoteInvocationExecutor] – client invocation of RemoteInvocation: method name ‚getDependantMasterData‘; parameter types [java.lang.String, java.lang.String, java.lang.Object, java.util.Map] on org.nuclos.server.masterdata.ejb3.MasterDataFacadeBean@452f7cdd took 1030 (1030) ms
2013-06-25 07:46:08,473 INFO [org.nuclos.server.report.ejb3.ReportFacadeBean] – preparing report (PDF) for datasource ‚EinkaufAnfrageBestellung-brutto‘.
2013-06-25 07:46:08,535 INFO [org.springframework.remoting.support.RemoteInvocationTraceInterceptor] – Processing of HttpInvokerServiceExporter remote call resulted in exception: org.nuclos.server.report.ejb3.ReportFacadeRemote.prepareReport
org.nuclos.server.report.NuclosReportException: Error evaluating expression :
Source text : ((org.nuclos.server.report.api.JRNuclosDataSource)$P{REPORT_DATA_SOURCE}).getDataSource(„EinkaufAnfrageBestellungSubbrutto“)
at org.nuclos.server.report.export.JasperExport.export(JasperExport.java:227)
at org.nuclos.server.report.ejb3.ReportFacadeBean.prepareReport_aroundBody28(ReportFacadeBean.java:568)
at org.nuclos.server.report.ejb3.ReportFacadeBean$AjcClosure29.run(ReportFacadeBean.java:1)
at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96cproceed(AbstractTransactionAspect.aj:59)
at org.springframework.transaction.aspectj.AbstractTransactionAspect$AbstractTransactionAspect$1.proceedWithInvocation(AbstractTransactionAspect.aj:65)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)
at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96c(AbstractTransactionAspect.aj:63)
at org.nuclos.server.report.ejb3.ReportFacadeBean.prepareReport(ReportFacadeBean.java:563)
at sun.reflect.GeneratedMethodAccessor748.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.remoting.support.RemoteInvocationTraceInterceptor.invoke(RemoteInvocationTraceInterceptor.java:77)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy69.prepareReport(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.remoting.support.RemoteInvocation.invoke(RemoteInvocation.java:205)
at org.nuclos.server.common.NuclosRemoteInvocationExecutor.invoke(NuclosRemoteInvocationExecutor.java:162)
at org.springframework.remoting.support.RemoteInvocationBasedExporter.invoke(RemoteInvocationBasedExporter.java:78)
at org.springframework.remoting.support.RemoteInvocationBasedExporter.invokeAndCreateResult(RemoteInvocationBasedExporter.java:114)
at org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter.handleRequest(HttpInvokerServiceExporter.java:73)
at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:49)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:150)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:201)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1008)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
2013-06-25 07:46:08,535 WARN [org.nuclos.server.common.NuclosRemoteInvocationExecutor] – Transaction rolling back now, because of org.nuclos.server.report.NuclosReportException: Error evaluating expression :
Source text : ((org.nuclos.server.report.api.JRNuclosDataSource)$P{REPORT_DATA_SOURCE}).getDataSource(„EinkaufAnfrageBestellungSubbrutto“): RemoteInvocation: method name ‚prepareReport‘; parameter types [java.lang.Integer, java.util.Map, java.lang.Integer](org.nuclos.server.report.ejb3.ReportFacadeBean@e12091f)
Wo kann ich da bei der Fehlersuche ansetzen, oder ist das Wiki evt. nicht auf dem neusten Stand?
Gruß
Stefan
ev. bei parameter 1 das Leerzeichen entfernen. Parameter und Subreport haben als Expression Class net.sf.jasperreports.engine.JasperReport eingetragen?
Zum direkten Testen im iReport kann bei der Subreport Expressen auch der absolute (lokale) Pfad zum Subreport eingetragen werden (unter Windows mit doppel Backslash, also c:\…), expression Class: java.lang.String, als Connection type: Use a connection expression und als Connection Expression: $P{REPORT_CONNECTION}
Die Wiki Anleitung passt jedenfalls, ich habe auch erst küzlich danach meinen ersten Subreport gemacht.
Gruß
Hugo
Hallo Stefan,
bitte überprüfe wo Du das Expression :“((org.nuclos.server.report.api.JRNuclosDataSource)$P{REPORT_DATA_SOURCE}).getDataSource(„…….“) eingetragen hast.
Ich erhalte Deinen Fehler,wenn ich es anstatt bei Use a datasource Expression bei use a connection expression eintrage.
Also bei den Subreport-Properties im iReport Designer prüfen ob Datasource Expression gewählt ist.
Guten Morgen,
vielen Dank für die Hilfe, es lag am Report.
Wir haben den nochmal neu angelegt, und schon geht es!
Gruß
Stefan
Hallo,
es der Post ist zwar schon etwas älter, aber wir haben das gleiche Problem und finden den Fehler nicht.
Wir haben das Formular wie Hugo beschrieben hat im IReport getestet, dort hat es funktioniert.
Ich hänge mal einen Screenshot von unseren Parametern an.
Serverlog:
org.nuclos.common.report.NuclosReportException: Error evaluating expression :
Source text : ((org.nuclos.server.report.api.JRNuclosDataSource)$P{REPORT_DATA_SOURCE}).getDataSource(„Firmenkopf“)
Danke,
SKoeper
Problem gelöst!
Auch bei uns war es das Hauptformular. Wir haben alles noch einmal genau verglichen. Schuldig war eine Sortierung in der Datenquelle für IReport. Diese erzeugt ein Tag
Nimmt man die Sortierung raus, funktioniert alles. Warum auch immer. :angry: :angry: :angry:
Viele Grüße
SKoeper
Du musst angemeldet sein, um auf dieses Thema antworten zu können.