2012-06-07 17 views
0

我有兩個類DocumentManagertwoApplication.java和DocumentEditor.java(代碼如下)。我需要一些幫助,找出當我點擊'編輯'按鈕時得到的這個錯誤

com.vaadin.event.ListenerMethod $ MethodException:調用方法buttonClick在com.example.documentmanagertwo.DocumentmanagertwoApplication $ 1失敗。 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:1455) 在com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariableBurst(AbstractCommunicationManager.java:1399) 在com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariables( AbstractCommunicationManager.java:1318) 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。服務(AbstractApplicationServlet.java:501) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org。 apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) at org.apache.catalina.core.StandardContextValve.invoke( StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves。 ErrorReportValve.invoke(ErrorReportValve.java:98) 在org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) 在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 在org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999) 在org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:565) at org.apache.tomcat.util.net.JIoEndpoint $ Sock etProcessor.run(JIoEndpoint.java:309) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722) 導致:java.lang.NoClassDefFoundError:com/example/documentmanagertwo/DocumentEditor at com.example.documentmanagertwo.DocumentmanagertwoApplication $ 1.buttonClick(DocumentmanagertwoApplication.java:46) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本機方法) 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang中。反映.Method.invoke(Method.java:601) at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:512) ... 27更多 引起:java.lang.ClassNotFoundException:com.example.documentmanagertwo .DocumentEditor at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader。Java的:1711) 在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556) ...... 33多個

//////////////// //////////////////////////////////////////////////下面///////////////////////// DocumentManagertwoApplication代碼:

FilesystemContainer docs = new FilesystemContainer (new File("C:\\Users\\MYRA\\Desktop\\Docx4java\\docs")); 
Table selector = new Table (null, docs); 
Label viewer = new Label ("Select a doc", Label.CONTENT_RAW); 
Button edit = new Button ("edit"); 


@Override 
public void init() { 
    final Window mainWindow = new Window("Documentmanagertwo Application", new VerticalSplitPanel()); 
    VerticalLayout lo = new VerticalLayout(); 
    Label label = new Label("Hello Vaadin user"); 
    mainWindow.addComponent(label); 
    mainWindow.addComponent(selector); 
    lo.addComponent(viewer); 
    lo.addComponent(edit); 
    mainWindow.addComponent(lo); 
    setMainWindow(mainWindow); 

    edit.addListener(new Button.ClickListener(){ 


     private static final long serialVersionUID = -3024072268109652498L; 

     public void buttonClick(ClickEvent event) { 

      Window dialog = new Window ("Edit Selected", 
        new DocumentEditor(viewer.getPropertyDataSource())); 
      dialog.setModal(true); 
      mainWindow.addWindow (dialog); 

     } 


    }); 

    selector.setImmediate(true); 
    selector.setSizeFull(); 
    selector.setSelectable(true); 
    selector.addListener(new Property.ValueChangeListener() { 

     /** 
     * 
     */ 
     private static final long serialVersionUID = 1L; 

     public void valueChange(ValueChangeEvent event) { 
      viewer.setPropertyDataSource(new TextFileProperty((File) selector.getValue())); 
     } 

    }); 
} 

}

//////// ////////////////////////////////////////////////// //////////////////////////////// DocumentEditor.java代碼如下: ///////// ////////////////////////////////////////////////// /////////////////////////

@AutoGenerated 
private AbsoluteLayout mainLayout; 

@AutoGenerated 
private Button button_1; 

@AutoGenerated 
private RichTextArea richTextArea_1; 

/*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */ 



/*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */ 

/** 
* 
*/ 
private static final long serialVersionUID = 2788446877665474591L; 
/** 
* The constructor should first build the main layout, set the 
* composition root and then do any custom initialization. 
* 
* The constructor will not be automatically regenerated by the 
* visual editor. 
*/ 
public DocumentEditor(Property document) { 
    buildMainLayout(); 
    setCompositionRoot(mainLayout); 

    // TODO add user code here 
    richTextArea_1.setPropertyDataSource(document); 
    richTextArea_1.setWriteThrough(false); 

    button_1.addListener(new Button.ClickListener() { 


     private static final long serialVersionUID = 1L; 

     public void buttonClick(ClickEvent event) { 
      richTextArea_1.commit(); 
      getApplication().getMainWindow().removeWindow(getWindow()); 
     } 
    }); 

} 

@AutoGenerated 
private AbsoluteLayout buildMainLayout() { 
    // common part: create layout 
    mainLayout = new AbsoluteLayout(); 
    mainLayout.setImmediate(false); 
    mainLayout.setWidth("100%"); 
    mainLayout.setHeight("100%"); 
    mainLayout.setMargin(false); 

    // top-level component properties 
    setWidth("100.0%"); 
    setHeight("100.0%"); 

    // richTextArea_1 
    richTextArea_1 = new RichTextArea(); 
    richTextArea_1.setImmediate(false); 
    richTextArea_1.setWidth("572px"); 
    richTextArea_1.setHeight("360px"); 
    mainLayout.addComponent(richTextArea_1, "top:0.0px;left:-2.0px;"); 

    // button_1 
    button_1 = new Button(); 
    button_1.setCaption("Save"); 
    button_1.setImmediate(false); 
    button_1.setWidth("-1px"); 
    button_1.setHeight("-1px"); 
    mainLayout.addComponent(button_1, "top:360.0px;left:500.0px;"); 

    return mainLayout; 
} 

}

回答

0

該異常的根本原因是 Caused by: java.lang.ClassNotFoundException: com.example.documentmanagertwo.DocumentEditor

這意味着JVM無法找到或加載給定的類。

DocumentEditor是否從不在類路徑中的庫中導入任何類或路徑? 這通常是造成這個問題的原因。

編譯後的類是否在類路徑中?我會嘗試清理和重建我的項目。

+0

謝謝。這很好。 –

相關問題