我正在尝试使用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服务器中。
答案 0 :(得分: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
答案 1 :(得分:2)
为什么不尝试像Mark Mandel's AsyncHTTP library这样的现有工具?
,而不是重新发明轮子 更新:根据评论,该工具仅限ACF。因此,您可以尝试使用Asynchronous HTTP Exchange示例中显示的具体类DefaultHttpAsyncClient
。