我试图在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"
其他信息:
答案 0 :(得分:1)
小部件正在尝试加载它所依赖的其他类(MatlabProxyFactory)并且找不到它们(NoClassDefFoundError就像一个ClassNotFoundException,但是一个级别"更深层次",就像类的字段或返回类型一样你加载无法找到)。
- >检查您的构建路径或您正在部署的内容是否完整。的依赖关系。
答案 1 :(得分:0)
我在另一篇文章中找到了答案: External project dependency in Vaadin
他们描述的有点不同,所以我会添加我所做的。
什么“hiergiltdiestfu”可能意味着很好,但我意外地检查项目类路径。 解决方案是将库添加到服务器类路径,这意味着在我的情况下你必须将它添加到tomcat类路径。
在eclipse中打开以下内容:
Run > Run Configurations > Apache Tomcat > (your Tomcat instance) > Classpath
然后向用户条目添加您需要的库。