Hello,
I get this Exception
2013-04-24 08:18:52,766 | ERROR | tp1448118192-654 | DefaultExceptionMapper
| ? ? | 269 - org.apache.wicket.core -
6.5.0 | Unexpected error occurred
org.apache.wicket.WicketRuntimeException: Method onResourceRequested of
interface org.apache.wicket.IResourceListener targeted at [ResourceLink
[Component id = exportLink]] on component [ResourceLink [Component id =
exportLink]] threw an exception
at
org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:268)[269:org.apache.wicket.core:6.5.0]
at
org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:216)[269:org.apache.wicket.core:6.5.0]
at
org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:240)[269:org.apache.wicket.core:6.5.0]
at
org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:226)[269:org.apache.wicket.core:6.5.0]
at
org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:840)[269:org.apache.wicket.core:6.5.0]
at
org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)[268:org.apache.wicket.request:6.5.0]
at
org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:254)[269:org.apache.wicket.core:6.5.0]
at
org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:211)[269:org.apache.wicket.core:6.5.0]
at
org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:282)[269:org.apache.wicket.core:6.5.0]
at
org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:244)[269:org.apache.wicket.core:6.5.0]
at
org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:188)[269:org.apache.wicket.core:6.5.0]
at
org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:137)[269:org.apache.wicket.core:6.5.0]
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:693)[95:org.apache.geronimo.specs.geronimo-servlet_2.5_spec:1.1.2]
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:806)[95:org.apache.geronimo.specs.geronimo-servlet_2.5_spec:1.1.2]
at
org.ops4j.pax.wicket.internal.FilterDelegator$Chain.doFilter(FilterDelegator.java:80)[274:org.ops4j.pax.wicket.service:2.1.0]
at
org.ops4j.pax.wicket.internal.FilterDelegator.doFilter(FilterDelegator.java:62)[274:org.ops4j.pax.wicket.service:2.1.0]
at
org.ops4j.pax.wicket.internal.ServletProxy$ServletInvocationHandler.invoke(ServletProxy.java:72)[274:org.ops4j.pax.wicket.service:2.1.0]
at $Proxy67.service(Unknown
Source)[274:org.ops4j.pax.wicket.service:2.1.0]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)[:1.6.0_37]
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)[:1.6.0_37]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[:1.6.0_37]
at java.lang.reflect.Method.invoke(Method.java:597)[:1.6.0_37]
at
org.ops4j.pax.web.service.internal.HttpServiceStarted$1.invoke(HttpServiceStarted.java:182)[100:org.ops4j.pax.web.pax-web-runtime:1.1.9]
at org.ops4j.pax.web.service.internal.$Proxy54.service(Unknown
Source)[100:org.ops4j.pax.web.pax-web-runtime:1.1.9]
at
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:652)[80:org.eclipse.jetty.servlet:7.6.7.v20120910]
at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:447)[80:org.eclipse.jetty.servlet:7.6.7.v20120910]
at
org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:70)[98:org.ops4j.pax.web.pax-web-jetty:1.1.9]
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)[84:org.eclipse.jetty.server:7.6.7.v20120910]
at
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:534)[82:org.eclipse.jetty.security:7.6.7.v20120910]
at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)[84:org.eclipse.jetty.server:7.6.7.v20120910]
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1038)[84:org.eclipse.jetty.server:7.6.7.v20120910]
at
org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:117)[98:org.ops4j.pax.web.pax-web-jetty:1.1.9]
at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:374)[80:org.eclipse.jetty.servlet:7.6.7.v20120910]
at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189)[84:org.eclipse.jetty.server:7.6.7.v20120910]
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:972)[84:org.eclipse.jetty.server:7.6.7.v20120910]
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)[84:org.eclipse.jetty.server:7.6.7.v20120910]
at
org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:75)[98:org.ops4j.pax.web.pax-web-jetty:1.1.9]
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)[84:org.eclipse.jetty.server:7.6.7.v20120910]
at
org.eclipse.jetty.server.Server.handle(Server.java:363)[84:org.eclipse.jetty.server:7.6.7.v20120910]
at
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:483)[84:org.eclipse.jetty.server:7.6.7.v20120910]
at
org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:920)[84:org.eclipse.jetty.server:7.6.7.v20120910]
at
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:982)[84:org.eclipse.jetty.server:7.6.7.v20120910]
at
org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:635)[79:org.eclipse.jetty.http:7.6.7.v20120910]
at
org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)[79:org.eclipse.jetty.http:7.6.7.v20120910]
at
org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)[84:org.eclipse.jetty.server:7.6.7.v20120910]
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:627)[81:org.eclipse.jetty.io:7.6.7.v20120910]
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:51)[81:org.eclipse.jetty.io:7.6.7.v20120910]
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)[90:org.eclipse.jetty.util:7.6.7.v20120910]
at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)[90:org.eclipse.jetty.util:7.6.7.v20120910]
at java.lang.Thread.run(Thread.java:662)[:1.6.0_37]
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)[:1.6.0_37]
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)[:1.6.0_37]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[:1.6.0_37]
at java.lang.reflect.Method.invoke(Method.java:597)[:1.6.0_37]
at
org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)[269:org.apache.wicket.core:6.5.0]
... 49 more
Caused by: java.util.MissingResourceException: Unable to find property:
'protocolRecord.retentionID'. Locale: null, style: null
at
org.apache.wicket.Localizer.getString(Localizer.java:237)[269:org.apache.wicket.core:6.5.0]
at
org.apache.wicket.Localizer.getString(Localizer.java:149)[269:org.apache.wicket.core:6.5.0]
at
org.apache.wicket.model.ResourceModel.getObject(ResourceModel.java:76)[269:org.apache.wicket.core:6.5.0]
at
org.apache.wicket.model.ResourceModel.getObject(ResourceModel.java:33)[269:org.apache.wicket.core:6.5.0]
at
org.apache.wicket.extensions.markup.html.repeater.data.table.export.CSVDataExporter.exportData(CSVDataExporter.java:198)[271:org.apache.wicket.extensions:6.5.0]
at
org.apache.wicket.extensions.markup.html.repeater.data.table.export.ExportToolbar$DataExportResourceStreamWriter.exportData(ExportToolbar.java:343)[271:org.apache.wicket.extensions:6.5.0]
at
org.apache.wicket.extensions.markup.html.repeater.data.table.export.ExportToolbar$DataExportResourceStreamWriter.write(ExportToolbar.java:298)[271:org.apache.wicket.extensions:6.5.0]
at
org.apache.wicket.request.resource.ResourceStreamResource$1.writeData(ResourceStreamResource.java:192)[269:org.apache.wicket.core:6.5.0]
at
org.apache.wicket.request.resource.AbstractResource.respond(AbstractResource.java:528)[269:org.apache.wicket.core:6.5.0]
at
org.apache.wicket.markup.html.link.ResourceLink.onResourceRequested(ResourceLink.java:115)[269:org.apache.wicket.core:6.5.0]
... 54 more
Why ist hat property null? In the table this cell isn't empty and in the markup
the rows are rendered including their content. Here is my properties.xml:
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<!--<entry key=""></entry>-->
<entry key="app.title">SMW Protokollierung</entry>
<entry key="null">Bitte Wählen</entry>
<entry key="nullValid">Bitte Wählen</entry>
<entry key="contentHeader">Protokollierung</entry>
<entry key="labelRetentionID">Retention-ID:</entry>
<entry key="labelContentSearch">Nach Inhalt:</entry>
<entry key="labelExtID">External-ID:</entry>
<entry key="labelIntService">Integration Service:</entry>
<entry key="labelServiceName">Servicename:</entry>
<entry key="labelZeitVon">Zeitraum von:</entry>
<entry key="labelZeitBis">bis:</entry>
<entry key="labelSystem">System:</entry>
<entry key="labelStatus">Status:</entry>
<entry key="labelServiceTyp">Servicetyp:</entry>
<!-- Datatable -->
<entry key="datatable.no-records-found">Keine Einträge vorhanden</entry>
<entry key="datatable.export-to=Export to">Export to</entry>
<entry key="datatable.export-file-name">export</entry>
<entry key="NavigatorLabel">Angezeigt werden die Einträge</entry>
<entry key="protocolRecord.retentionID">Retention-ID</entry>
<entry key="protocolRecord.protocolID">Protocol-ID</entry>
<entry key="protocolRecord.externalID">External-ID</entry>
<entry key="protocolRecord.eventTimestamp">Event-Timestamp</entry>
<entry key="protocolRecord.integrationService">Integration-Service</entry>
<entry key="protocolRecord.endpoint">Endpoint</entry>
<entry key="protocolRecord.endpointType">Endpoint-Typ</entry>
<entry key="protocolRecord.messageStatus">Message-Status</entry>
</properties>
Mit freundlichen Grüßen
Christoph Manig
Systems Engineer
T-Systems International GmbH
Systems Integration - SC Travel, Transport & Logistics
Hoyerswerdaer Str. 18
01099 Dresden
tel.: +49 (0) 351 / 8152 - 188
fax: +49 (0) 351 / 8152 - 209
email: [email protected]
-----Ursprüngliche Nachricht-----
Von: Jesse Long [mailto:[email protected]]
Gesendet: Mittwoch, 24. April 2013 10:10
An: [email protected]
Betreff: Re: AW: AW: DefaultDataTable will not render bottomtoolbar for export
Hi Christoph,
Are the headers present in the CSV file? (No, indicates some sort of error
generating the CSV, look at server logs. Yes, would indicate no records, but
possibly error encountered after rendering headers, again, check server logs).
Are there records displayed in the HTML data table? If there are no records
there, then none will be present in the exported CSV.
Thanks,
Jesse
On 24/04/2013 09:13, [email protected] wrote:
> Hello,
>
> Now I can see the exporttoolbar but when I click the link the csv is empty.
> Why is that empty?
>
> Here the code:
> @Override
> public void onSubmit(AjaxRequestTarget target, Form form) {
> target.add(feedback);
> FilterCreatorProtocol filter =
> (FilterCreatorProtocol)form.getModelObject();
>
> if(ConsoleDataHandlerImpl.getInstance().queryProtocolRowsByFilter(filter) <=
> MAX_SEARCH_RESULTS){
> List<ProtocolRecord> protocolData =
> ConsoleDataHandlerImpl.getInstance().queryProtocolDataWithSearchFilter(filter);
>
> target.add(ProtokollierungPage.this.get("searchTable").replaceWith(getSearchTable(protocolData)));
> }else{
> error("ErrorMessage");
> }
> }
>
> private DefaultDataTable getSearchTable(List<ProtocolRecord> dataList) {
> DefaultDataTable<ProtocolRecord,String> searchTable = new
> DefaultDataTable<ProtocolRecord, String>("searchTable",getTableHead(),new
> ProtocolDataSortDataProvider(dataList),10);
> searchTable.setOutputMarkupId(true);
> searchTable.addBottomToolbar(new ExportToolbar(searchTable, new
> Model<String>("Export to"), new
> Model<String>("export")).addDataExporter(new CSVDataExporter()));
>
> return searchTable;
> }
>
> List<IColumn<ProtocolRecord,String>> columns = new
> ArrayList<IColumn<ProtocolRecord,String>>();
> columns.add(new PropertyColumn<ProtocolRecord, String>(new
> ResourceModel("protocolRecord.retentionID"), "retentionId", "retentionId"));
> columns.add(new PropertyColumn<ProtocolRecord, String>(new
> ResourceModel("protocolRecord.protocolID"), "protocolId", "protocolId"){
> @Override
> public void populateItem(Item<ICellPopulator<ProtocolRecord>>
> cellItem, String componentId, IModel<ProtocolRecord> model)
> {
> cellItem.add(new ActionPanel(componentId, model));
> }
> });
> columns.add(new PropertyColumn<ProtocolRecord, String>(new
> ResourceModel("protocolRecord.externalID"), "externalId",
> "externalId")); columns.add(new DatePropertyColumn(new
> ResourceModel("protocolRecord.eventTimestamp"),"eventTimestamp","event
> Timestamp","dd.MM.yyyy HH:mm:ss")); columns.add(new
> PropertyColumn<ProtocolRecord, String>(new
> ResourceModel("protocolRecord.integrationService"),"integrationService
> ","integrationService")); columns.add(new
> PropertyColumn<ProtocolRecord, String>(new
> ResourceModel("protocolRecord.endpoint"),"endpoint","endpoint"));
> columns.add(new PropertyColumn<ProtocolRecord, String>(new
> ResourceModel("protocolRecord.endpointType"),"endpointType","endpointT
> ype")); columns.add(new PropertyColumn<ProtocolRecord, String>(new
> ResourceModel("protocolRecord.messageStatus"),"messageStatus.descripti
> on","messageStatus.description"));
>
>
> Mit freundlichen Grüßen
> Christoph Manig
> Systems Engineer
>
> T-Systems International GmbH
> Systems Integration - SC Travel, Transport & Logistics Hoyerswerdaer
> Str. 18
> 01099 Dresden
> tel.: +49 (0) 351 / 8152 - 188
> fax: +49 (0) 351 / 8152 - 209
> email: [email protected]
>
>
> -----Ursprüngliche Nachricht-----
> Von: Manig, Christoph
> Gesendet: Mittwoch, 24. April 2013 07:54
> An: [email protected]
> Betreff: AW: AW: DefaultDataTable will not render bottomtoolbar for
> export
>
> Hello,
>
> now I see the Problem. Thank you for your help and sorry for my blindness.
>
>
> Mit freundlichen Grüßen
> Christoph Manig
> Systems Engineer
>
> T-Systems International GmbH
> Systems Integration - SC Travel, Transport & Logistics Hoyerswerdaer
> Str. 18
> 01099 Dresden
> tel.: +49 (0) 351 / 8152 - 188
> fax: +49 (0) 351 / 8152 - 209
> email: [email protected]
>
> -----Ursprüngliche Nachricht-----
> Von: Jesse Long [mailto:[email protected]]
> Gesendet: Dienstag, 23. April 2013 15:57
> An: [email protected]
> Betreff: Re: AW: DefaultDataTable will not render bottomtoolbar for
> export
>
> Hi Christoph,
>
> PropertyColumns are already exportable. Exportable means implements
> IExportableColumn.
>
> Sven identified that the replaced data table does not have the export toolbar
> added to it. This is why it does not display after being replaced.
>
> Cheers,
> Jesse
>
> On 23/04/2013 15:49, [email protected] wrote:
>> Ok. Thanks for your answer.
>>
>> Here are my columns:
>> List<IColumn<ProtocolRecord,String>> columns = new
>> ArrayList<IColumn<ProtocolRecord,String>>();
>> columns.add(new PropertyColumn<ProtocolRecord, String>(new
>> ResourceModel("protocolRecord.retentionID"), "retentionId", "retentionId"));
>> columns.add(new PropertyColumn<ProtocolRecord, String>(new
>> ResourceModel("protocolRecord.protocolID"), "protocolId", "protocolId"){
>> @Override
>> public void populateItem(Item<ICellPopulator<ProtocolRecord>>
>> cellItem, String componentId, IModel<ProtocolRecord> model)
>> {
>> cellItem.add(new ActionPanel(componentId, model));
>> }
>> });
>> columns.add(new PropertyColumn<ProtocolRecord, String>(new
>> ResourceModel("protocolRecord.externalID"), "externalId",
>> "externalId")); columns.add(new DatePropertyColumn(new
>> ResourceModel("protocolRecord.eventTimestamp"),"eventTimestamp","even
>> t Timestamp","dd.MM.yyyy HH:mm:ss")); columns.add(new
>> PropertyColumn<ProtocolRecord, String>(new
>> ResourceModel("protocolRecord.integrationService"),"integrationServic
>> e ","integrationService")); columns.add(new
>> PropertyColumn<ProtocolRecord, String>(new
>> ResourceModel("protocolRecord.endpoint"),"endpoint","endpoint"));
>> columns.add(new PropertyColumn<ProtocolRecord, String>(new
>> ResourceModel("protocolRecord.endpointType"),"endpointType","endpoint
>> T ype")); columns.add(new PropertyColumn<ProtocolRecord, String>(new
>> ResourceModel("protocolRecord.messageStatus"),"messageStatus.descript
>> i
>> on","messageStatus.description"));
>>
>> How can I make them exportable? What are exportable columns in Wicket?
>>
>> At first the dataTable is empty, so the BottomToolbar shouldn't be rendered.
>> That's right. But when it is replaced by an Ajaxbutton and there is some
>> data in the dataTable the Bottomtoolbar isn't rendered.Why? Because of the
>> non-exportable columns?
>>
>>
>> Mit freundlichen Grüßen
>> Christoph Manig
>> Systems Engineer
>>
>> T-Systems International GmbH
>> Systems Integration - SC Travel, Transport & Logistics Hoyerswerdaer
>> Str. 18
>> 01099 Dresden
>> tel.: +49 (0) 351 / 8152 - 188
>> fax: +49 (0) 351 / 8152 - 209
>> email: [email protected]
>>
>>
>> -----Ursprüngliche Nachricht-----
>> Von: Jesse Long [mailto:[email protected]]
>> Gesendet: Dienstag, 23. April 2013 15:43
>> An: [email protected]
>> Betreff: Re: DefaultDataTable will not render bottomtoolbar for
>> export
>>
>> Hi Christoph,
>>
>> ExportToolbar#isVisible() is not visible in any of these conditions:
>>
>> * There are no rows displayed (this is your case)
>> * There are no data exporters (this is not your case)
>> * There are no exportable columns (I dont know if this is your case)
>>
>> If you want the export toolbar to be visible when there are no rows, please
>> overload ExportToolbar#isVisible(), or file a Jira issue if you want that
>> configurable.
>>
>> Thanks,
>> Jesse
>>
>>
>> On 23/04/2013 14:54, [email protected] wrote:
>>> Hello,
>>>
>>> I have a Problem with the DefaultDataTable and the Export csv. Here is my
>>> code:
>>>
>>> DefaultDataTable<ProtocolSearchData,String> searchTable = new
>>> DefaultDataTable<ProtocolSearchData,
>>> String>("searchTable",getTableHead(),new
>>> ProtocolDataSortDataProvider(Collections.EMPTY_LIST),10);
>>> searchTable.addBottomToolbar(new ExportToolbar(searchTable,new
>>> Model<String>("Export to"),new
>>> Model<String>("export")).addDataExporter(new CSVDataExporter()));
>>> searchTable.setOutputMarkupId(true);
>>>
>>> add(searchTable);
>>>
>>> This table will be replaced by submitting an AjaxFallbackButton, so that
>>> the DataProvider gets an list with some data and not an empty list. My
>>> Problem is that the bottomtoolbar for exporting a csv ist not rendered. The
>>> no-records-found toolbar will be rendered.
>>>
>>> What is the problem here? Can anyone please help me?
>>>
>>>
>>>
>>> Mit freundlichen Grüßen
>>> Christoph Manig
>>> Systems Engineer
>>>
>>> T-Systems International GmbH
>>> Systems Integration - SC Travel, Transport & Logistics Hoyerswerdaer
>>> Str. 18
>>> 01099 Dresden
>>> tel.: +49 (0) 351 / 8152 - 188
>>> fax: +49 (0) 351 / 8152 - 209
>>> email: [email protected]
>>>
>>>
>>>
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]