在Lotusscript代码中调用Java

在这里插入图片描述
大家好,才是真的好。写技术文档,有一个很大的特点:吃力不讨好。但我们坚信,技术带来人的进步。所以今天讲一下在Lotusscript代理中调用Java代码的方式,即LS2J。

LS2J简介

LS2J很“古老”,大约是2002年Lotus Domino R6发布时的一项新功能。利用LS2J可以很轻易地在LotusScript代码调用Java,扩展Lotusscript语言能力,实现Lotusscript难以实现的各种功能。

Lotusscript(以下简称LS)的优势是紧密结合各种Domino类和对象,具有强大的Notes文档处理能力,而Java就不用说了,其跨平台特性和丰富的类库让实现各种功能充满了想象,比如实现JDBC、图表统计、图片处理、PDF文件、FTP上传、签名计算等等。

一个简单的例子

LS2J很简单。在Domino Designer帮助中就可以找到简单的示例,如使用Java中的内置java.lang.Integer类。我们在表单中创建一个按钮,然后写入LS代码。首先在表单(Options)事件中写入userlsx "*javacon"表明使用LS2J DLL文件并注册数据类型,LS将会连接JVM等,如下图:
在这里插入图片描述
以下为一个特别简单的例子,实现将数字转换为文本。

首先在LS定义三个类JavaSession(java会话)、JavaClass(java类)、JavaObject(java对象或方法),如下:

Dim mySession As JavaSession
Dim myClass As JavaClass
Dim myObject As JavaObject

要是开始调用Java,则首先需要初始化java会话类,如下:

Set mySession = new JavaSession()

然后通过Javasession得到Java内置的类,即java.lang.Integer

Set myClass = mySession.GetClass(“java/lang/Integer”)

根据java.lang.Integer类创建一个具体的对象,其中CreateObject("(I)V", 5)中的“(I)V”指定为整数类型,数字5为该对象初始值

Set myObject = myClass.CreateObject("(I)V", 5)

最后,我们可以调用java/lang/Integer类的方法toString(),将初始值5变成文本并打印出来。

Msgbox myObject.toString()

代码整体效果如下:
在这里插入图片描述
得到的结果:
在这里插入图片描述
获取本地计算机信息

更进一步,我们可以通过Java内置的方法(java/net/lnetAddress),来获取和计算机有关的信息,比如来访用户的用户本地计算机名、IP地址等等。

同样创建一个按钮,然后写入下列代码

Dim jsession As JavaSession
Dim jclass As JavaClass
Dim localHost As JavaObject
Set jsession = New JavaSession
Set jclass = jsession.GetClass("java/net/InetAddress")
Set localHost = jclass.getLocalHost()
Msgbox "计算机名称: " & localHost.getHostName()
Msgbox "IP地址: " & localHost.getHostAddress()

代码效果如下图:
在这里插入图片描述
运行一下看看效果吧
在这里插入图片描述
两个例子中,我们都采用的是很简单的Java内置的方法,其实也可以自己写Java库来进行调用。下面是调用Java脚本库的例子。

调用Java脚本库

首先,我们得建一个java脚本库,在新建Script库时,类型一定要选择Java,如下图:
在这里插入图片描述
如果有jar要导入,可点击导入按钮。本例很简单,只是进行信息输出打印,所以不引入任何外部jar包。可以先选择Untitled.java,鼠标右键重命名为我们要定义的Java类名称,我们取名为helloJavaClass如下图:
在这里插入图片描述
在这里插入图片描述
然后双击打开,在里面输入如下Java代码:
在这里插入图片描述
非常简单,就是打印输出一句话。Java脚本库就算完成了。接着,我们新建一个Lotusscript代理,如下图:
在这里插入图片描述
在该代理的(Options)事件中,先写入UseLSX “*javacon”,然后写入Use “helloJava”——即我们引入的Java库,如下图:
在这里插入图片描述
同样定义javasession、javaclass、javaobject,并分别进行实例化。最后调用hellMethod方法,如下图:
在这里插入图片描述
我们在Notes中打开Java控制台,然后运行该代理,即可看到消息打印到Java控制台中,如下图:
在这里插入图片描述
这里只是一个很简单的入门。不过相信各位已经知道如何在Lotusscirpt调用Java了。在BS应用或后端代理中,LS2J也可以发挥很大的威力,有着广泛地实际用途。最后,我之所讲这一篇文档,完全是因为在项目中用到过啊,而且确实好用。

更多精彩内容请关注微信公众号“协作者”
在这里插入图片描述
原文链接:https://mp.weixin.qq.com/s/jpEo0CkAr393YZSAFmUWAQ

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值