Xpages - Java - 如何开始编写代码

时间:2014-10-28 10:08:33

标签: xpages

我是Java新手,但不是Lotus Notes。以下是我的一些问题:

  1. Java类中的主要方法 - 我可以像在Ecplise中一样在DDE中运行一个简单的HelloWorld.java吗?
  2. 我是否在项目资源管理器中使用Java设计元素或创建Java类?
  3. 在开始在DDE中使用Java之前卸载其他JVM会不会更好?
  4. 由于 阿伦

5 个答案:

答案 0 :(得分:3)

我强烈建议您花一些时间来了解如何在DDE / Notes / Domino中使用Xpages和Java:

  • IBM的JVM与您可能已安装的其他JVM完全分离
  • Java类没有主方法 - 除了您引用来自代理
  • 的方法
  • 如果为XPage应用程序创建Java类,则始终使用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开发。

  1. 您不能经常使用main方法。使用静态方法hello()创建一个HelloWorld.java,并在XPage中使用{javascript:com.package.HelloWorld.hello()}

  2. 调用此方法
  3. 您可以使用Java设计元素。这些在DDE中很容易访问,并且已经包含在构建路径中。对于较大的项目,您可以在Package explorer中创建自己的目录结构,并将其包含在构建路径中。只要它们包含在构建路径中,您就可以在XPage中使用它们。

  4. 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