2012-05-25 70 views
0

我想在我的UI中显示PDF和得到了以下错误:在vaadin显示PDF

May 25, 2012 11:29:11 AM com.vaadin.Application terminalError 
SEVERE: Terminal error: 
com.vaadin.event.ListenerMethod$MethodException 
Cause: java.lang.AbstractMethodError: eu.livotov.tpt.gui.vdv.core.SinglePageDocumentRenderer.generateCell(Lcom/vaadin/ui/Table;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 
at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:532) 
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:164) 
at com.vaadin.ui.AbstractComponent.fireEvent(AbstractComponent.java:1219) 
at com.vaadin.ui.Button.fireClick(Button.java:550) 
at com.vaadin.ui.Button.changeVariables(Button.java:217) 
at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.changeVariables(AbstractCommunicationManager.java:1445) 
at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariableBurst(AbstractCommunicationManager.java:1393) 
at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariables(AbstractCommunicationManager.java:1312) 
at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.doHandleUidlRequest(AbstractCommunicationManager.java:763) 
at com.vaadin.terminal.gwt.server.CommunicationManager.handleUidlRequest(CommunicationManager.java:296) 
at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:501) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:538) 
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:478) 
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) 
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:517) 
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225) 
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:937) 
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:406) 
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183) 
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:871) 
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) 
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110) 
at org.eclipse.jetty.server.Server.handle(Server.java:346) 
at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:589) 
at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1065) 
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:823) 
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:220) 
at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:411) 
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:531) 
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40) 
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:529) 
at java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.AbstractMethodError: eu.livotov.tpt.gui.vdv.core.SinglePageDocumentRenderer.generateCell(Lcom/vaadin/ui/Table;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 
at com.vaadin.ui.Table.getVisibleCellsNoCache(Table.java:1691) 
at com.vaadin.ui.Table.refreshRenderedCells(Table.java:1479) 
at com.vaadin.ui.Table.attach(Table.java:3341) 
at com.vaadin.ui.AbstractComponentContainer.attach(AbstractComponentContainer.java:97) 
at com.vaadin.ui.AbstractComponentContainer.attach(AbstractComponentContainer.java:97) 
at com.vaadin.ui.AbstractComponentContainer.attach(AbstractComponentContainer.java:97) 
at com.vaadin.ui.AbstractComponentContainer.attach(AbstractComponentContainer.java:97) 
at com.vaadin.ui.AbstractComponent.setParent(AbstractComponent.java:560) 
at com.vaadin.ui.AbstractComponentContainer.addComponent(AbstractComponentContainer.java:211) 
at com.vaadin.ui.TabSheet.addTab(TabSheet.java:294) 
at com.vaadin.ui.TabSheet.addTab(TabSheet.java:332) 
at com.vaadin.ui.TabSheet.addTab(TabSheet.java:311) 
at com.complete.raspberry.webui.FileAdminView$SearchFormLayout$2.buttonClick(FileAdminView.java:166) 
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 com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:512) 
... 32 more 

我的代码是这样的:

Button advanceSearchButton = new Button("Advance Search", 
    new Button.ClickListener() { 
    public void buttonClick(ClickEvent event) { 

    DocumentViewer viewer = new DocumentViewer(); 
    viewer.loadDocument (new PdfDocument (new java.io.File ("C:/handbook.pdf"))); 
    System.out.println("Pages pdf : " + viewer.getPagesCount());       
    VerticalLayout myTabCoursPDF = new VerticalLayout(); 
    myTabCoursPDF.addComponent(viewer); 
    tabsheet.addTab(myTabCoursPDF); 

我还包含在以下JAR我的项目:

  • icepdf-core.jar添加
  • icepdf-pro.jar
  • icepdf-PRO-intl.jar
  • TPT-core.jar添加

现在什么是我的代码的问题...谁能plzz帮助我..

+0

你能得到更多的堆栈跟踪吗? – Thilo

+0

这是什么意思栈跟踪? –

+0

对不起,我有更多的堆栈跟踪,但没有显示完整的堆栈跟踪在这里.. –

回答

0

根据堆栈跟踪你发布了,“generateCell”方法没有在类“eu.livotov.tpt.gui.vdv.core.SinglePageDocumentRenderer”中实现。当您添加新选项卡时会调用这个选项。根据to this thread,TPT库可能不适合与Vaadin一起使用。

点击侦听器本身看起来没问题。

Caused by: java.lang.AbstractMethodError: eu.livotov.tpt.gui.vdv.core.SinglePageDocumentRenderer.generateCell(Lcom/vaadin/ui/Table;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 
at com.vaadin.ui.Table.getVisibleCellsNoCache(Table.java:1691) 
at com.vaadin.ui.Table.refreshRenderedCells(Table.java:1479) 
at com.vaadin.ui.Table.attach(Table.java:3341) 
at com.vaadin.ui.AbstractComponentContainer.attach(AbstractComponentContainer.java:97) 
at com.vaadin.ui.AbstractComponentContainer.attach(AbstractComponentContainer.java:97) 
at com.vaadin.ui.AbstractComponentContainer.attach(AbstractComponentContainer.java:97) 
at com.vaadin.ui.AbstractComponentContainer.attach(AbstractComponentContainer.java:97) 
at com.vaadin.ui.AbstractComponent.setParent(AbstractComponent.java:560) 
at com.vaadin.ui.AbstractComponentContainer.addComponent(AbstractComponentContainer.java:211) 
at com.vaadin.ui.TabSheet.addTab(TabSheet.java:294) 
+0

所以现在我怎么可以使用这个DocumentViewer,因为我已经将我的PDF作为图像显示给客户端,以便客户端无法打印它.. –