为什么我得到错误显然jsonStoreEnabled没有设置为true,我确实将它设置为true?

时间:2017-07-31 15:45:04

标签: java json twitter4j

我是Twitter4j的新手,我正试图通过JSON获取twitter的推文 形成 但我得到一个例外。 我运行了这段代码

public static void main(String[] args) throws IOException {
    BufferedReader br =new BufferedReader(new InputStreamReader(System.in));
        try {
       //Establish Connection to Twitter App
            ConfigurationBuilder cb = new ConfigurationBuilder();
            cb.setJSONStoreEnabled(true);
            twitter=  new TwitterFactory(cb.build()).getSingleton();
            twitter.setOAuthConsumer(consumerKeyStr, consumerSecretStr);
            AccessToken accessToken = new AccessToken(accessTokenStr,
                    accessTokenSecretStr);
            twitter.setOAuthAccessToken(accessToken);
        //////
       ArrayList<String> JsonTweets =new ArrayList<String>();
             QueryResult result = twitter.search(new Query("abc"));
             List<Status> resulted_tweets = result.getTweets();
              for(Status tweet :resulted_tweets)
              {
                String json = TwitterObjectFactory.getRawJSON(tweet);
                JsonTweets.add(json);
              }
              System.out.println((Arrays.toString( JsonTweets.toArray())));


        }
            catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }}

我得到的只是

java.lang.IllegalStateException: Apparently jsonStoreEnabled is not set to true.
at twitter4j.TwitterObjectFactory.getRawJSON(TwitterObjectFactory.java:32)
at JavaTweet.main(JavaTweet.java:86)

虽然我确实在第6行中将其设置为true。 我打算用jsonString将它添加到json对象中,并在结果中找到推文中的一些属性

1 个答案:

答案 0 :(得分:2)

您没有配置正确的实例。您将配置传递给TwitterService类的新实例,然后从该实例获取单例..这是您从未配置的另一个实例。

  twitterFactory=  new TwitterFactory(cb.build());
  twitter= twitterFactory.getSingleton();

等于

  twitterFactory =  new TwitterFactory(cb.build())
  twitter = twitterFactory.getInstance();

看到了吗?

解决:

...
<div 
    tabIndex="0" //use this attribute
    id="bigRedDiv" 
    style={{height : 200, width : 200, backgroundColor : 'red'}} 
    ref={(input)=> this.my_refs['bigRedDiv'] = input } 
    onFocus={() => console.log('FOCUS IS ON BIG RED DIV')} 
    onClick={() => this.focusByID('bigRedDiv')} >
</div>
...

比较:http://twitter4j.org/en/configuration.html