在基于服务器的代理中使用 REST 服务

2023-12-20

我们被要求构建一个基于 Domino 服务器的数据库,用于与远程非 Domino 服务器交换数据。可以使用 Web 服务连接到远程服务器。

使用 R8.5.3 在 Domino 中创建 RESTful 服务似乎很简单:Internet 上有一些关于 Domino 数据服务的非常有趣的文章。学习中这一页 http://infolib.lotus.com/resources/domino/8.5.3/doc/designer_up1/en_us/DominoDataService.html#ddapi_admin_osgifiles肯定会帮助我建立连接的一端。

现在介绍代理中的消耗部分。我们之前做过一次,不久前,然后我们使用纯 HTTP URL 和简单的 GetDocument URL。它并不完美,但它有效。

但这是在 Domino 代理中使用 Web 服务的最佳方式吗?这是一个 Linux 环境,所以我不能使用 MS-objects 等。是否有一些我可以调用的标准库,最好是在 LotusScript 中?或者有没有办法在代理中使用某些 XPage 控件?

感谢您的建议!


[编辑] 示例来自打破标准杆 http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256DC80053681B

要放置在名为 GetHTML 的 Java 库中的 java 代码:

import java.io.*;
import java.net.*;

public class GetHTML {

   public String getHTML(String urlToRead) {
      URL url; // The URL to read
      HttpURLConnection conn; // The actual connection to the web page
      BufferedReader rd; // Used to read results from the web page
      String line; // An individual line of the web page HTML
      String result = ""; // A long string containing all the HTML
      try {
         url = new URL(urlToRead);
         conn = (HttpURLConnection) url.openConnection();
         conn.setRequestMethod("GET");
         rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
         while ((line = rd.readLine()) != null) {
            result += line;
         }
         rd.close();
      } catch (Exception e) {
         e.printStackTrace();
      }
      return result;
   }
}

并在 Lotusscript 中使用它:

Uselsx "*javacon"
Use "GetHTML" ' Java library
Const myURL = "http://www.breakingpar.com"
Dim js As JAVASESSION
Dim getHTMLClass As JAVACLASS
Dim getHTMLObject As JavaObject
Dim html As String

Set js = New JAVASESSION
Set getHTMLClass = js.GetClass("GetHTML")
Set getHTMLObject = getHTMLClass.CreateObject
html = getHTMLObject.getHTML(myURL)

我使用它通过此服务填充 Lotus 中的国家/地区下拉列表:http://ws.geonames.org/countryInfo http://ws.geonames.org/countryInfo?

您可以使用 Java 代理来使用其余服务:

下面的代码是从技术说明中复制的。如果请求是更大脚本的一部分,则可以将 HTTP 请求包装在LS2J http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp?topic=/com.ibm.designer.domino.main.doc/LSAZ_USING_LS2J.html

import lotus.domino.*;
import java.net.*;
import java.io.*;
import java.text.*;
import java.util.*;
import java.math.*;

public class JavaAgent extends AgentBase {
    public void NotesMain() {
        try {
            Session session = getSession();
            AgentContext agentContext = session.getAgentContext();

            Database db = agentContext.getCurrentDatabase();
            URL ibmURL = new URL(" http://finance.yahoo.com/q?s=IBM&d=t");
            BufferedReader bin = new BufferedReader(new InputStreamReader(ibmURL.openStream()));
            String line;
            StringBuffer sb = new StringBuffer();

            while ((line = bin.readLine()) != null) {
                sb.append(line);
            }
            String ibmString = sb.toString();

            Document newNotesDoc = db.createDocument();
            newNotesDoc.replaceItemValue("Form", "IBMForm");
            newNotesDoc.replaceItemValue("WebPageUS", ibmString);
            newNotesDoc.computeWithForm(true, false);
            newNotesDoc.save(true, true);

            String ibms = newNotesDoc.getItemValueString("QuoteUS");
            System.out.println("IBM Raw String is " + ibms);
            newNotesDoc.recycle();

            NumberFormat n = NumberFormat.getCurrencyInstance(Locale.US);
            BigDecimal d = new BigDecimal(ibms);
            double ibmd = d.doubleValue();
            String ibm = n.format(ibmd);
            System.out.println("IBM Currency is " + ibm);

            SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMMM dd, yyyy hh:mm:ss a");
            Date currentTime_1 = new Date();
            String dateString = formatter.format(currentTime_1);
            System.out.println("Formatted date is " + dateString);
            String displayText = "IBM stock price as of " + dateString + " NYSE US " + ibm;
            System.out.println("Display text is " + displayText);
            db.recycle();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在基于服务器的代理中使用 REST 服务 的相关文章

  • ReST 代理对象生成器

    第三方公司写了一套ReST服务 我已经让所有代码正常工作 但事后看来 为了消除一些跑腿工作 我认为有人可能知道一个代码生成器 它连接到 ReST 服务并计算出需要创建和生成哪些请求和响应对象这些的代码 我在谷歌上看了一下 但没有看到任何合适
  • Outlook Rest 调用表单 angularjs

    使用 Outlook 我正在尝试创建事件 当我使用 POSTMAN 发送请求时 它工作正常 但 Angularjs 中的相同代码却不起作用 代码有什么问题 请帮忙 scope createEvents function var url ht
  • 使用 Ruby Curb 传递 GET 参数

    我正在尝试使用 Curb curb rubyforge org 调用需要在 get 请求中提供参数的 RESTful API 我想获取一个像这样的URLhttp foo com bar xml bla blablabla 我希望能够做类似的
  • 尝试使用 REST API 公开对象时出现“访问被拒绝。提供的范围未经授权”错误

    我正在尝试对 Google Cloud Storage 存储桶中的各个对象设置权限 以使它们可公开查看 如下Google 文档中指示的步骤 https cloud google com storage docs access control
  • Spring Boot 自定义 ErrorAttributes http 状态未设置为响应

    继Spring Boot之后文档 http docs spring io spring boot docs current reference htmlsingle boot features error handling我定义了自己的 E
  • Ruby on Rails 中 RESTful POST 的功能测试

    我想为我正在 Ruby on Rails 应用程序中开发的 RESTful Web 服务编写功能测试 该测试是 POST 请求 其中请求正文是纯 XML 文档而不是表单 有关如何执行此操作的任何指示 我遇到的问题是如何在调用 post 方法
  • 如何正确处理 JWT 刷新?

    我有一个安卓应用程序 它连接到一个REST API开发与Jersey 我的 REST 端点通过令牌进行保护 下面是我生成它们的方法 Algorithm algorithm Algorithm HMAC256 secret String to
  • RESTful WCF 的最低配置

    为了让 WCF 与 REST 一起工作 我至少需要在 web config 中放入什么 我已经用 WebGet 注释了我的方法 但他们没有收到消息 我发现您可以将以下内容添加到 svc 文件中的 ServiceHost 指令中 它会自动为您
  • 使用 Spring RestTemplate 时忽略 SSL 证书验证

    我正在使用 Spring RestTemplate 发出 HTTPS 请求 并且我想忽略 SSL 证书 这是我创建restTemplate请求的代码 TrustStrategy acceptingTrustStrategy X509Cert
  • 如何在没有可用行选择器的情况下为 APEX 21.1 REST 数据源设置数据配置文件

    我正在使用 APEX 21 1 并为 Web 服务创建了一个 REST 数据源 该服务以以下格式返回响应 1499040000000 A time stamp 0 01634790 A value etc 1499040000100 A t
  • 如何进行 REST 式更新?

    如果我有一个对象 请说Employee 我想提供两种不同的更新方式 更新绩效评级或更新联系信息 构建 API 的 REST 式方式是什么 我认为正确的方法是 POST 我担心的是 对于用户来说 首先获取对象的两个部分 绩效评级和联系信息 仅
  • 如何使用 JAXRS 和 JAXB 设置 Restlet 服务器?

    我一直在互联网上查找 试图找到如何执行此操作的示例 我只是想设置一个 REST 服务器 它自动将对象序列化到 XML 或从 XML 序列化对象 我只是想提供一个服务器 以便于用户登录 注销以及仅在用户登录后访问 XML 对象列表 启动并运行
  • REST - 获取随机数 GET 还是 POST?

    应该如何在 REST 中正确实现随机数生成器 GET RANDOM or POST RANDOM 服务器每次返回不同的随机数 我可以看到这两种方式的论点 我想说这与返回的包含当前时间的页面相同 其中许多都是使用 GET 完成的 抽象地说 获
  • 为什么“FormDataMultiPart”类型参数被区别对待

    我正在编写一个小网络应用程序 将文件上传到网络服务器 我一切正常 但令我感到困惑的是 几乎所有从客户端 浏览器 发送的参数都必须在服务器端注入单词 FormDataParam except FormDataMultiPart类型参数 有人可
  • LinkedIn Groups API - 在单个 API 请求中获取多个群组的群组徽标

    Using LinkedIn 群组 API http developer linkedin com documents groups api 我正在显示用户在 LinkedIn 上所属的组列表 使用以下命令可以清楚地在一次调用中获取组列表
  • Jersey 和 Spring 中的全局异常处理?

    我正在使用 Jersey 和 Spring 3 2 以及 Open CMIS 开发 RESTful Web 服务 我没有使用 Spring 的 MVC 模式 它只是 Spring IOC 和 Jersey SpringServlet 控制器
  • 如何从 Android 调用 RESTful 方法?

    我尝试了两种不同的方法来从 Android 调用简单的 REST 方法 所述 REST 方法 适用于其他客户端 仅返回一个 int val 例如 17 以下两次尝试都是基于我在网上找到的代码 有一种是这样的 公共无效onFetchBtnCl
  • 当会话令牌无效时,我应该使用什么状态代码?

    创建 Web 服务 RESTful 时 当会话令牌无效时我应该使用什么状态代码 目前我公司的人给我发了一个404 未找到 但我认为这是不正确的 因为资源存在 也许我应该使用 401 Unauthorized 你怎么认为 您建议我在这种情况下
  • 在 RESTful Web 服务中实现注销

    我正在开发一个需要注销服务的移动应用程序 登录服务是通过数据库验证来完成的 现在我陷入了注销状态 退一步 您没有提供有关如何在应用程序中执行身份验证的详细信息 并且很难猜测您在做什么 但是 需要注意的是 在 REST 应用程序中 不能有会话
  • Spring @RequestMapping 带有可选参数

    我的控制器在请求映射中存在可选参数的问题 请查看下面的控制器 GetMapping produces MediaType APPLICATION JSON VALUE public ResponseEntity

随机推荐

  • 如何在 .NET/C# 中切换异步和同步

    如何在 C 中的多个任务的异步 同步处理之间切换 我希望能够在任务的并行处理和同步处理之间切换以进行测试 分析 最初 我有一系列内联初始化的任务 虽然这对于并行来说很好 但我发现我的同步代码不起作用 因为每个方法都会在数组初始化时激活 我决
  • 无法更改密钥库格式

    我正在尝试使用一些密钥库keytool来自最新的 JRE 版本 1 8 0 151 当我使用此命令创建密钥库时keytool genkey alias serverprivate keystore server private keyalg
  • MySQL“SELECT LIMIT 1”有多条记录是否从顶部选择第一条记录?

    我搜索了又搜索 找不到这个问题的答案 我可能以错误的方式问了它 我正在查询员工数据库 我需要根据职位 ID 获取详细信息 但是该职位 ID 可能有多个记录 因为该组织拥有针对同一职位的长期员工和临时员工 因此 为了获取位置 id 的当前占用
  • SQL Left Join 不返回所有结果

    我有两张表正在尝试为正在经历流程的客户加入 所有客户都会进入第一步 但只有部分进展到第二步 表 2 客户可能会在不同时间多次启动此流程 并且可能会在几个月 几个月或几个月内进入第二步 我想知道有多少人取得了这一进展 以表格为例 Table
  • VB.NET 不同范围的嵌套 With 语句

    我想知道这是否可能 我有一个列表表 lstTable 它与我试图用公共结构 ELEM DATA 中的信息填写的表单相同 我知道如果嵌套 with 语句在同一范围内 则它会起作用 但我该如何使用下面的示例 2 来做到这一点 示例1 With
  • 由于没有系统应用程序而终止?

    最近有没有人在 XCode 中遇到错误消息 由于没有系统应用程序而终止 我有一个在 iOS 8 1 和 XCode 6 1 上运行的 CoreAudio 应用程序 使用 Amazing Audio Engine 框架构建 自 XCode 6
  • 如何设置在 Windows 登录屏幕上打开应用程序的按钮

    这是我的第一个问题 我想知道是否有办法在登录屏幕上设置按钮来打开自定义应用程序 我已经搜索了 Microsoft 文档 然后找到了有关凭据提供程序的信息 但我不想创建 IU 登录名 我只想打开一个这样的应用程序 这就是我想要实现的目标 ht
  • Yii2 Gridview - 如何在页脚属性上使用总计

    我的 VALUE 列是 attribute gt value format gt raw contentOptions gt style gt width 10 text align left footer gt 如何使用 FOOTER 属
  • 用 Java 生成的轻量级 Web 服务(没有应用程序服务器)[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 是否有任何 Java 库允许在没有任何应用程序服务器框架的情况下构建简单的独立 Web 服务服务器 Java 6 包含 JAX WS 这使
  • 如何防止在分离的 HEAD 中提交

    为什么 git 允许你提交一个独立的头 是否有任何预提交挂钩可以禁用它 什么目的 许多新开发人员都会这样做 我想找到一种方法来禁用它 这只能通过本地 git 来防止pre commithook 因此开发人员需要创建它 添加your loca
  • 带 DataPager 的 ListView 不起作用

    从我读过的所有内容来看 向 ListView 控件添加分页似乎应该非常简单 但它对我不起作用 将 ListView 和 DataPager 控件添加到窗体并将它们连接在一起后 我得到了非常奇怪的行为 DataPager 正确限制了 List
  • Directory.CreateDirectory异常

    我在用Directory CreateDirectory MyShared Pics NewFolder 在目录中创建一个新文件夹 MyShared Pics我遇到了一个例外 Access to the path MyShared Pics
  • android.graphics.BitmapFactory.nativeDecodeAsset(本机方法)处的 java.lang.OutOfMemoryError

    我正在尝试在单击按钮时执行动画 步骤如下 单击按钮 按钮图像发生变化 播放动画 显示下一个布局 但我遇到了内存不足的异常 当动画文件未添加到项目中时 没有错误 但自从加入了动画之后 问题就出现了 我在这里使用 3 个类文件 home scr
  • Android Facebook 登录没有 Facebook 登录按钮

    我想使用 Facebook 登录而不使用 Facebook 登录按钮 所以我在默认的android按钮上应用了点击事件 但我得到了错误cannot resolve method logInWithReadPermissions 这是我的代码
  • Groovy:安装后编译器不匹配

    我在用grails 2 3 4与eclipse grails plugin GGTS 但是 安装后我创建了一个项目并得到 Description Resource Path Location Type Groovy compiler mis
  • 回形针可以读取 S3 存储桶中的照片几何形状吗?

    我想从我的 S3 容器中读取照片的几何形状 当它在我本地时 这有效 def photo geometry style original geometry geometry style Paperclip Geometry from file
  • 如何使用 CSS2 选择器获取元素的第 n 个子元素?

    CSS2 中是否有可能获取有序列表的第 n 个元素 如同 nth child 在 CSS3 中 仅供参考 我正在尝试将 Parcheesi 的德语版本编程为兼容 XHTML 1 1 和 CSS2 并尝试使用有序列表生成游戏场 因此移动选项是
  • jQuery 如果 myDiv 是:可见,则将类添加到另一个元素

    我又开始接触 jQuery 了 显然我错过了一些东西 我想根据另一个元素是否可见向元素添加一个类 它隐藏着display none 并激活slideToggle 我有这个 if about me is visible about me cl
  • 如何使用本地开发 minikube 进入 Kubernetes 中的 postgres

    有人可以帮我吗 这是我在这里发表的第一篇文章 我真的很高兴开始在这里发帖并帮助人们 但我首先需要帮助 我正在 Minikube 上部署我自己的 Postgres 数据库 对于数据库 密码和用户名 我使用的是秘密 数据采用base64编码 P
  • 在基于服务器的代理中使用 REST 服务

    我们被要求构建一个基于 Domino 服务器的数据库 用于与远程非 Domino 服务器交换数据 可以使用 Web 服务连接到远程服务器 使用 R8 5 3 在 Domino 中创建 RESTful 服务似乎很简单 Internet 上有一