我正在嘗試在jruby中打包jruby-on-rails項目中的amazon-merchant-web-service-java-sdk。jruby無法從jar加載java類
在我的測試,我能夠實例化一些類....
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
該罐包含在拉鍊中,與Java源代碼。
我做的似乎無法在網上找到那個罐子。是可用的麼? – Rob
對不起,我應該包含一個鏈接。我忘記了亞馬遜開發人員的資源有時會找到。 https://developer.amazonservices.com/doc/bde/feeds/v20090901/java.html/182-0022359-5036344 – Homan
你試過我的建議嗎? – Rob