【发布时间】:2013-06-30 05:41:01
【问题描述】:
我正在尝试将 amazon-merchant-web-service-java-sdk 包装在 jruby 中,用于 jruby-on-rails 项目。
在我的测试中,我能够实例化一些类 ....
require 'java'
require 'lib/MaWSJavaClientLibrary-1.1.jar'
module MWS
include_package 'com.amazonaws.mws'
include_package 'com.amazonaws.mws.model'
end
config = MWS::MarketplaceWebServiceConfig.new #this works!!
...但不是其他人
client = MWS::MarketplaceWebServiceClient.new #this does NOT work!!!
NameError: MarketplaceWebServiceClient not found in packages com.amazonaws.mws, com.amazonaws.mws.model; last error: cannot load Java class com.amazonaws.mws.model.MarketplaceWebServiceClient
const_missing at file:/Users/...
为什么找不到?可能是因为,它是一个接口的实现:
public class MarketplaceWebServiceClient implements MarketplaceWebService
有趣的是我可以实例化接口但不能实例化实现:
service = MWS::MarketplaceWebService.new # does not throw an error
这没有意义,因为接口没有构造函数。该实现有 3 个具有不同参数的构造函数。但是我该如何调用它们呢?
jRuby 相当于 java 的 Interface variable = new Implementation(),即:
MarketplaceWebService service = new MarketplaceWebServiceClient(
accessKeyId, secretAccessKey, appName, appVersion, config);
或者这只是一个导入问题,我没有正确地使课程可用?任何建议表示赞赏。谢谢。
编辑:在撰写本文时,可以在以下位置找到 java sdk:https://developer.amazonservices.com/doc/bde/feeds/v20090901/java.html/182-0022359-5036344
jar 包含在 zip 中,以及 java 源代码。
【问题讨论】:
-
我似乎在网上找不到那个罐子。有货吗?
-
对不起,我应该包含它的链接。我忘记了亚马逊开发人员资源有时是可以找到的。 developer.amazonservices.com/doc/bde/feeds/v20090901/java.html/…
-
你试过我的建议了吗?
标签: java ruby-on-rails jruby amazon-mws