Use env entries from an EJB

1

I am using the Twitter4J library to use the Twitter API. I'm using this library in an EJB without status like this:

@Stateless
    public class TwitterSearchBean implements TwitterSearchBeanLocal {


        @Resource(name = "TWITTER_OAUTH_CONSUMER_KEY")
        private String oauthConsumerKey;
        @Resource(name = "TWITTER_OAUTH_CONSUMER_SECRET")
        private String oauthConsumerSecret;
        @Resource(name = "TWITTER_OAUTH_ACCESS_TOKEN")
        private String oauthAccessToken;
        @Resource(name = "TWITTER_OAUTH_ACCESS_TOKEN_SECRET")
        private String oauthAccessTokenSecret;
        private Twitter twitter;
        private final TweetDataMapper mapper = new TweetDataMapper();

        @PostConstruct
        public void init() {
            ConfigurationBuilder cb = new ConfigurationBuilder();
            cb.setDebugEnabled(true).setOAuthConsumerKey(oauthConsumerKey)
                    .setOAuthConsumerSecret(oauthConsumerSecret)
                    .setOAuthAccessToken(oauthAccessToken)
                    .setOAuthAccessTokenSecret(oauthAccessTokenSecret);
            TwitterFactory tf = new TwitterFactory(cb.build());
            twitter = tf.getInstance();
        }

        @Override
        public List<Tweet> search(final String keyword) {
            Query query = new Query(keyword + " -filter:retweets -filter:links -filter:replies -filter:images");
            query.setCount(20);
            query.setLocale("en");
            query.setLang("en");
            try {
                QueryResult queryResult = twitter.search(query);
                List<Status> tweetsStatus = queryResult.getTweets();
                Collection<Tweet> tweets = mapper.transform(tweetsStatus);
                return (List<Tweet>) tweets;
            } catch (TwitterException e) {
                Logger.getLogger(getClass().getName()).log(Level.SEVERE, "exception caught", e);
                throw new RuntimeException(e);
            }
        }
    }

The keys required for the ConfigurationBuilder are declared within theun-ejb-jar.xml files on src / main / resources / META-INF:

<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE sun-ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD GlassFish Application Server 3.0 EJB 3.1//EN" "http://www.sun.com/software/appserver/dtds/sun-ejb-jar_3_1-0.dtd">
    <sun-ejb-jar>
        <enterprise-beans>
            <session>
                <ejb-name>TwitterSearchBean</ejb-name>
                <env-entry>
                    <env-entry-name>TWITTER_OAUTH_CONSUMER_KEY</env-entry-name>
                    <env-entry-type>java.lang.String</env-entry-type>
                    <env-entry-value>please enter key here</env-entry-value>
                </env-entry>
                <env-entry>
                    <env-entry-name>TWITTER_OAUTH_CONSUMER_SECRET</env-entry-name>
                    <env-entry-type>java.lang.String</env-entry-type>
                    <env-entry-value>please enter key here</env-entry-value>
                </env-entry>
                <env-entry>
                    <env-entry-name>TWITTER_OAUTH_ACCESS_TOKEN</env-entry-name>
                    <env-entry-type>java.lang.String</env-entry-type>
                    <env-entry-value>please enter key here</env-entry-value>
                </env-entry>
                <env-entry>
                    <env-entry-name>TWITTER_OAUTH_ACCESS_TOKEN_SECRET</env-entry-name>
                    <env-entry-type>java.lang.String</env-entry-type>
                    <env-entry-value>please enter key here</env-entry-value>
                </env-entry>
            </session>
        </enterprise-beans>
    </sun-ejb-jar>

These resources are not injected and the keys are null. Does anyone know what the problem may be or know an alternative?

    
asked by Sergio Sánchez Sánchez 20.10.2016 в 23:47
source

0 answers