部署在weblogic上的应用程序无法通过代理访问Internet

时间:2014-06-03 05:37:31

标签: twitter proxy weblogic

我有一个使用twitter4j库访问twitter API的简单代码。当我独立运行时,代码工作正常。但是当我在weblogic服务器上部署相同的代码作为更大的应用程序的一部分时,它开始给我以下错误。

  

java.net.ConnectException:尝试全部:4个地址,但不能   通过HTTPS连接到服务器:api.twitter.com端口:443

这里的问题是我们需要使用代理服务器来访问互联网。我在连接到twitter API时已经给出了代理,并且它在独立运行时似乎正在工作。但是在weblogic上部署应用程序后也没有发生同样的情况。连接到twitter API的代码在

下面
    public static String getTwitterFeed() {
     String retVal = "";

     try { 
     HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
         public boolean verify(String hostname, SSLSession session) { 
                 return true; 
         }}); 
     SSLContext context = SSLContext.getInstance("TLS");
     context.init(null, new X509TrustManager[]{new X509TrustManager(){
         public void checkClientTrusted(X509Certificate[] chain, 
                         String authType) throws CertificateException {} 
         public void checkServerTrusted(X509Certificate[] chain, 
                         String authType) throws CertificateException {} 
         public X509Certificate[] getAcceptedIssuers() { 
                 return new X509Certificate[0]; 
         }}}, new SecureRandom()); 
     HttpsURLConnection.setDefaultSSLSocketFactory(
                 context.getSocketFactory()); 
     } catch (Exception e) { // should never happen
     e.printStackTrace();
     }

     ConfigurationBuilder cb = new ConfigurationBuilder();
     cb.setDebugEnabled(true).setOAuthConsumerKey("XXXXXXXXXXXXXXXXXXXXXX").
     setOAuthConsumerSecret("XXXXXXXXXXXXXXXXXXXXXXXXXX").
     setOAuthAccessToken("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx").
     setOAuthAccessTokenSecret("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX").
     setHttpProxyHost("proxy.com").
     setHttpProxyPort(1111);

       try {
         TwitterFactory tf = new TwitterFactory(cb.build());
         Twitter twitter = tf.getInstance();
         AppModule am = new AppModule();
         String tag = am.getTwitterTags();
           if(tag == null || tag.length()==0) {
               System.out.println("no tag found");
               tag = "#rajneesh";
           }
         Query query = new Query(tag);
         query.setCount(5);
         QueryResult result;
         result = twitter.search(query);
         List<Status> tweets = result.getTweets();
         for (Status tweet : tweets) {
             String tweetText = twitterTemplate;
             tweetText = tweetText.replaceAll("~author~", tweet.getUser().getScreenName()).replaceAll("~Tweet",tweet.getText()).
                 replaceAll("~elapsed time~", tweet.getCreatedAt().toString());
             retVal = retVal+tweetText;
         }
     } catch (TwitterException te) {
         te.printStackTrace();
     } catch (Exception e) {
         e.printStackTrace();       
     }
     String html = "<html><head></head><body>" + retVal+"</body></html>";
    // System.out.println(html);
     return html;
 }

0 个答案:

没有答案