Ответ 1
Посмотрев на код и документацию, похоже, что ваш метод создания экземпляра Twitter
не рекомендуется. Если вы хотите программно настроить конфигурацию (и не использовать свойства), похоже, вам нужно поставить Configuration
в TwitterFactory
.
... ConfigurationBuilder builder = new ConfigurationBuilder(); builder.setOAuthConsumerKey(CONSUMER_KEY); builder.setOAuthConsumerSecret(CONSUMER_SECRET); Configuration configuration = builder.build(); TwitterFactory factory = new TwitterFactory(configuration); Twitter twitter = factory.getInstance(); ...
Синглтон, предоставляемый factory, который не был снабжен конфигурацией по умолчанию, использует реализацию Authorization
, поддерживаемую конфигурацией PropertyConfiguration
. Если файл свойств отсутствует, похоже, он не должен создавать экземпляр OAuthAuthorization
auth, что и вызвало бы исключение, которое вы видите. Но PropertyConfiguration
выполняет поиск по всему CLASSPATH
для соответствующего файла свойств, поэтому, возможно, вы его не заметили. Вы можете попробовать выполнить регистрацию ключа и секрет сразу после получения экземпляра Twitter
, чтобы увидеть, на что они установлены:
System.out.println("key:" + twitter.getConfiguration().getOAuthConsumerKey()); System.out.println("secret: " + twitter.getConfiguration().getOAuthConsumerSecret());