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

Java 在Vaadin中使用库:com.Vaadin.server.ServiceException,java,matlab,vaadin,Java,Matlab,Vaadin,我正在尝试使用vaadin中的matlabcontrol库。我基本上希望使用vaadin作为GUI来更好地配置变量 我有一个运行的测试GUI,一切正常,直到我尝试添加matlabcontrol特定的变量或调用。我确实添加了这个库,在测试时matlab接口工作得很好 我将向您展示一个抽象示例: public class UI_Matlab extends CustomComponent { public UI_Matlab{ Label matlabRox = new Label("

我正在尝试使用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”

其他信息:

  • 瓦丁7.0
  • Tomcat v7.0
  • 日食开普勒
  • matlabcontrol 4.1.0(已编辑)

小部件试图加载它所依赖的其他类(MatlabProxyFactory),但找不到它们(NoClassDefFoundError类似于ClassNotFoundException,但找不到一个“更深”级别,如加载的类的字段或返回类型)


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

我在另一篇帖子中找到了答案:

他们的描述有点不同,所以我会补充我所做的

“hiergiltdiestfu”的意思可能很有效,但我无意中检查了项目类路径。 解决方案是将库添加到服务器类路径,这意味着在我的例子中必须将它添加到tomcat类路径

在eclipse中打开以下内容:

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

然后将您需要的库添加到用户条目中。

感谢您的快速回复!我查找了构建路径,添加了matlabcontrol-4.1.0.jar。vaadin服务器库是否有特殊的构建路径?(顺便说一句:必须编辑,使用matlabcontrol 4.1.0)我不完全确定,因为您写道“测试时接口工作得很好”-我假设您的代码在本地测试中工作,但在部署到服务器时不工作,因此我包括了指向本地类路径和部署类路径的指针,在您的例子中,这两个路径都是为Tomcat提供的。我曾经通过Jetty为本地部署开发Vaadin,这意味着这两个类集(本地+部署)实际上是相同的。-不管怎样-很高兴你成功了:)