【问题标题】:Using Java SDK Library on Coldfusion在 Coldfusion 上使用 Java SDK 库
【发布时间】:2014-10-15 13:14:12
【问题描述】:

我正在尝试使用 Prediction.io 提供的 Java SDK,但遇到了一些麻烦。基本上,要使用 Java SDK,Java 代码如下。

import com.google.common.collect.ImmutableMap;
import io.prediction.EventClient;
import org.joda.time.DateTime;

EventClient eventClient = new EventClient(1);
eventClient.setUser("id_1", ImmutableMap.<String, Object>of(), new DateTime("2004-12-13T21:39:45.618-07:00"));

我所做的是:

1) 编译 Java SDK 并将生成的 jar 文件和依赖项复制到 /opt/railo/lib/

2) 使用以下代码管理获取 EventClient 类的转储:

<cfset MyTest = CreateObject("java", "io.prediction.EventClient")>
<cfdump var="#MyTest#">

在那之后我几乎迷路了。虽然我很习惯 Coldfusion,但我完全是一个 Java 新手。如何将上面的 Java 代码使用/复制到 Coldfusion 中?

【问题讨论】:

    标签: java coldfusion


    【解决方案1】:

    完全未经测试,但应该这样做:

    先创建对象:

    <cfset MyTest = CreateObject("java", "io.prediction.EventClient").init(1)>
    

    这相当于EventClient eventClient = new io.prediction.EventClient(1);。您需要 init() 方法来创建使用 CreateObject() 加载的类的实例,方法是使用参数 1 调用其构造函数。

    创建一个空的ImmutableMap

    <cfset imClass = CreateObject("java", "com.google.common.collect.ImmutableMap")>
    <cfset imObj = imClass.of()>
    

    在上面,您正在调用ImmutableMap 类的静态方法of(),因此您不需要该类上的init。如果您愿意,也可以将这两行合并为一行。

    现在创建 Joda DateTime 对象:

    <cfset jtObj = CreateObject("java", "org.joda.time.DateTime").init("2004-12-13T21:39:45.618-07:00")>
    

    最后,您可以调用 EventClient 对象上的方法:

    <cfset MyTest.setUser("id_1", imObj, jtObj)>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-17
      • 1970-01-01
      相关资源
      最近更新 更多