我是Java新手,但不是Lotus Notes。以下是我的一些问题:
由于 阿伦
答案 0 :(得分:3)
我强烈建议您花一些时间来了解如何在DDE / Notes / Domino中使用Xpages和Java:
一个好的开始是David Leedy的NotesIn9系列。您可以在此处查看视频教程的全部概要:http://www.mindmeister.com/de/280533435/notesin9
答案 1 :(得分:2)
如果您只想玩Java(不是XPages部分),请在Domino Designer中创建一个Java项目(更改为Java透视图),然后使用main编写代码。当您将其作为Java程序运行时,它将输出到控制台。您仍然可以访问Domino对象。例如,下面的代码显示了如何做到这一点......我这样做是为了测试一些数据模型和概念,然后在我证明我的概念之后将代码复制到实际的NSF中以用作bean。实验和测试将代码作为Java程序运行并在浏览器中查看输出要容易得多。
霍华德
public static void main(String[] args) {
try {
NotesThread.sinitThread(); // start thread
Session s = NotesFactory.createSession((String) null, (String) null, "cessna");
//do whatever
} catch (Exception e) {
e.printStackTrace();
} finally {
NotesThread.stermThread(); // must terminate every thread
}
}
答案 2 :(得分:1)
当您使用XPages标记您的问题时,我的答案将仅涵盖DDE for XPages中的Java开发。
您不能经常使用main方法。使用静态方法hello()创建一个HelloWorld.java,并在XPage中使用{javascript:com.package.HelloWorld.hello()}
您可以使用Java设计元素。这些在DDE中很容易访问,并且已经包含在构建路径中。对于较大的项目,您可以在Package explorer中创建自己的目录结构,并将其包含在构建路径中。只要它们包含在构建路径中,您就可以在XPage中使用它们。
JVM包含在Domino服务器中并从中使用。您无需在计算机上卸载JVM。
答案 3 :(得分:1)
我不确定你不想要运行整个程序是什么意思。 "程序"与编写SSJS时一直运行的XPage运行时相同。对于特定的NSF,JVM是作为该运行时的一部分创建的。该运行时包括许多Java代码所依赖的所有相关OSGi插件(如FacesContext类,ExtLibUtil等)。测试"程序"在XPage中通常没有什么不同于测试"程序"在传统的Notes开发中。
您可以从Eclipse进行测试,但是您需要能够连接到Domino服务器,以便以与您需要能够连接到Domino服务器以运行调试器的方式类似的方式运行代码。因此,如果运行调试器是一个问题,那么从Eclipse运行是一个非启动器。
从Eclipse开始,除非您从OSGi插件运行代码,否则您仍需要在NSF之外复制和粘贴代码,除非您在ODP中使用测试用例。
如果要运行junit测试,可以使用OpenNTF项目。但是从我对Java和junit测试的经验来看,当我刚刚开始使用Java时,我并不认为我能用它来测试我的代码。所以我不建议这样做。
可以从独立的XPage测试静态方法(不在托管bean中的实用程序方法)。我之前使用过这种方法。否则,可以将bean添加到独立的XPage中,指向您希望的任何数据或使用您希望的任何值进行初始化,因此,如果应用程序体系结构允许,您可以控制其中的一部分。
答案 4 :(得分:1)
检查Bob Balaban的文章“双头野兽”。它解释了您想要采取的方法。虽然它是为代理编写的,但它也适用于Java。
您需要做什么:编写您的业务逻辑(您要进行单元测试的部分),而不依赖于xpages细节。在方法调用中移交关键对象:会话数据库。您可以在主例程中初始化它们。
我写了一篇关于它的文章,Check it out。