我创建了一个基本的Vaadin应用程序,然后添加了我的Domino Jar文件。
当我运行应用程序时,我明白了 [com.vaadin.server.ServiceException:java.lang.NoClassDefFoundError:lotus / domino / NotesException]
我已经阅读了很多关于使用OSGI等的文章。是否有一种简单的方法可以在没有所有插件的情况下从Vaadin访问Domino数据?如果没有,有人可以解释原因吗?
这是主叫代码
undefined
这是多米诺骨牌代码
package com.lms.helloDomino;
import javax.servlet.annotation.WebServlet;
import com.lms.service.StarService;
import com.vaadin.annotations.Theme;
import com.vaadin.annotations.VaadinServletConfiguration;
import com.vaadin.server.VaadinRequest;
import com.vaadin.server.VaadinServlet;
import com.vaadin.ui.Button;
import com.vaadin.ui.Label;
import com.vaadin.ui.TextField;
import com.vaadin.ui.UI;
import com.vaadin.ui.VerticalLayout;
import lotus.domino.NotesException;
/**
* This UI is the application entry point. A UI may either represent a browser window
* (or tab) or some part of an HTML page where a Vaadin application is embedded.
* <p>
* The UI is initialized using {@link #init(VaadinRequest)}. This method is intended to be
* overridden to add component to the user interface and initialize non-component functionality.
*/
@Theme("mytheme")
public class MyUI extends UI {
@Override
protected void init(VaadinRequest vaadinRequest) {
StarService myStarService = null;
try
{
myStarService = new StarService();
myStarService.openStarDB();
} catch ( Exception e1 )
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
final VerticalLayout layout = new VerticalLayout();
final TextField name = new TextField();
name.setCaption("Your Domino Name");
name.setValue( myStarService.getNABProfile( "" ).fullName.toString() );
Button button = new Button("Click Me");
button.addClickListener(e -> {
layout.addComponent(new Label("Thanks " + name.getValue()
+ ", it works!"));
});
layout.addComponents(name, button);
setContent(layout);
}
@WebServlet(urlPatterns = "/*", name = "MyUIServlet", asyncSupported = true)
@VaadinServletConfiguration(ui = MyUI.class, productionMode = false)
public static class MyUIServlet extends VaadinServlet {
}
}
答案 0 :(得分:1)
原来这是一个构建路径问题。非常感谢mindoo.de的Karsten Lehmann,他帮我解决了这个问题。
我没有意识到在运行提供Vaadin应用程序的Apache Web服务器时,也需要我的Domino .jar文件在它的构建路径上。他向我展示了如何将.jar文件添加到Apache中,如下所示:
双击服务器选项卡下的Apache服务器
单击“打开启动配置”
单击“类路径”选项卡
突出显示用户条目并添加外部Jar文件。
我一直在寻找这个/现在一年。不敢相信它终于有效了!!!