在Vaadin中使用库:com.vaadin.server.ServiceException

时间:2014-04-22 13:54:43

标签: java matlab vaadin

我试图在vaadin中使用matlabcontrol库。我基本上想要使用vaadin作为GUI来更好地配置变量。

我有一个测试GUI运行,一切正常,直到我尝试添加matlabcontrol特定的变量或调用。我确实添加了库,matlab界面在测试时效果很好。

我将向您展示一个抽象的例子:

public class UI_Matlab extends CustomComponent {

  public UI_Matlab{
    Label matlabRox = new Label("Matlab rocks!");
    setCompositionRoot(matlabRox);
  }
}

这可以正常工作! 但是当我改变它时:

public class UI_Matlab extends CustomComponent {

  public UI_Matlab{
    MatlabProxyFactory factory = new MatlabProxyFactory();
    Label matlabRox = new Label("Matlab rocks!");
    setCompositionRoot(matlabRox);
  }
}

我已经得到了:

" HTTP状态500 - com.vaadin.server.ServiceException:java.lang.NoClassDefFoundError:matlabcontrol / MatlabProxyFactory"

其他信息:

  • Vaadin 7.0
  • Tomcat v7.0
  • Eclipse Kepler
  • matlabcontrol 4.1.0(已编辑)

2 个答案:

答案 0 :(得分:1)

小部件正在尝试加载它所依赖的其他类(MatlabProxyFactory)并且找不到它们(NoClassDefFoundError就像一个ClassNotFoundException,但是一个级别"更深层次",就像类的字段或返回类型一样你加载无法找到)。

- >检查您的构建路径或您正在部署的内容是否完整。的依赖关系。

答案 1 :(得分:0)

我在另一篇文章中找到了答案: External project dependency in Vaadin

他们描述的有点不同,所以我会添加我所做的。

什么“hiergiltdiestfu”可能意味着很好,但我意外地检查项目类路径。 解决方案是将库添加到服务器类路径,这意味着在我的情况下你必须将它添加到tomcat类路径。

在eclipse中打开以下内容:

Run > Run Configurations > Apache Tomcat > (your Tomcat instance) > Classpath

然后向用户条目添加您需要的库。