1

我正在尝试使用JavaLoader将 java ( HttpAsyncClient ) 类加载到 ColdFusion 中。

client = loader.create("org.apache.commons.HttpAsyncClient")

我们怎么知道那个是参考org.apache.commons.HttpAsyncClient?我想如果你打开 jar 文件并按照目录结构,它会给你参考路径。但我不认为这是真的。

我正在尝试使用 HttpAsyncClient 但我无法加载它:

client = loader.create("org.apache.commons.HttpAsyncClient")返回类未找到错误。

Loader 是对JavaLoader的引用,它将 Java 类加载到您的 CF 服务器中。

4

2 回答 2

2

我不知道ColdFusion。您可能必须指定类的完整路径,而不仅仅是包含该类的包。

根据一个例子我发现完整的包和类名是这样的:org.apache.http.nio.client.HttpAsyncClient

您还可以使用 javadoc 找出包名和类名:http ://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/index.html

使用这样的接口进行异步操作可能会很残酷。我建议先尝试同步版本。

编辑

我会尝试将此同步示例调整为 CF:http ://hc.apache.org/httpcomponents-client-ga/httpclient/examples/org/apache/http/examples/client/ClientWithResponseHandler.java

当您实例化 HttpGet 时,您必须像在此示例中那样将额外的参数传递给 init():http: //www.coldfusionjedi.com/index.cfm/2009/5/29/Generating-Speech-with-ColdFusion-and -Java

于 2011-10-13T20:23:10.877 回答
2

与其重新发明轮子,不如试试像Mark Mandel 的 AsyncHTTP 库这样的现有工具?

更新:从评论中,该工具仅是 ACF。因此,您可以尝试使用异步 HTTP 交换示例DefaultHttpAsyncClient中所示的具体类。

于 2011-10-13T21:15:11.153 回答