大家下午好!
我使用 PayPal REST API java sdk,我想为我的应用程序的不同环境使用不同的配置。这是我尝试这样做的方式:
private static boolean IS_PRODUCTION = false;
private static String PAYPAL_ACCESS_TOKEN;
private static void initPayPal() {
InputStream is = null;
try {
is = ApplicationConfig.class.getResourceAsStream(
IS_PRODUCTION? "/my_paypal_sdk_config.properties" : "/my_paypal_sdk_config_test.properties");
PayPalResource.initConfig(is);
String clientID = ConfigManager.getInstance().getConfigurationMap().get("clientID");
String clientSecret = ConfigManager.getInstance().getConfigurationMap().get("clientSecret");
PAYPAL_ACCESS_TOKEN = new OAuthTokenCredential(clientID, clientSecret).getAccessToken();
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
IOUtils.closeQuietly(is);
}
}
在尝试获取我拥有的 clientID 时
java.io.IOException: Resource 'sdk_config.properties' could not be found
奇怪的行为 - 我以为我只是将 sdk 配置为使用我自己的属性文件。
请告诉我如何正确设置这些设置!
最佳答案
所以这是我找到的解决方案:
- 在默认位置创建一个空的 sdk_config.properties 文件
加载您自己的属性:
private static void initPayPal() { InputStream is = null; try { is = ApplicationConfig.class.getResourceAsStream( IS_PRODUCTION ? "/my_paypal_sdk_config.properties" : "/my_paypal_sdk_config_test.properties"); Properties props = new Properties(); props.load(is); PayPalResource.initConfig(props); ConfigManager.getInstance().load(props); String clientID = ConfigManager.getInstance().getConfigurationMap().get("clientID"); String clientSecret = ConfigManager.getInstance().getConfigurationMap().get("clientSecret"); PAYPAL_ACCESS_TOKEN = new OAuthTokenCredential(clientID, clientSecret).getAccessToken(); } catch (Exception e) { throw new RuntimeException(e); } finally { IOUtils.closeQuietly(is); } }
关于java - PayPal REST API java sdk - 自定义配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18359669/