Fenriswolf 程式筆記

奮利斯狼的地盤,小綿羊勿入

Weblogic v.s. java.net.URL

當在 weblogic 裡使用 java.net.URL 這個 class 取得 default port
以 JDK 預設會回傳 80
但是 weblogic 改寫了 default value,會回傳 -1
這在使用一些 thirdparty library 並傳入 java.net.URL 會造成 runtime error

URL url = new URL("http://www.google.com/holidaylogos.html");
System.out.println(url.getDefaultPort());

解決方式有二
1. 設定明確的 port(建議)

URL url = new URL("http", "www.google.com", 80, "/holidaylogos.html");

2. 重寫自己的 URLStreamHandlerFactory
並修改 startWebLogic.cmd 加入以下參數

-Dweblogic.net.http.URLStreamHandlerFactory=com.fs.util.MyURLStreamHandlerFactory

這裡只用 http 為例子,如果有使用其他 protocol 要再修改 URLStreamHandlerFactory

public class MyURLStreamHandlerFactory implements URLStreamHandlerFactory {
    public URLStreamHandler createURLStreamHandler(String protocol) {
        protocol = protocol.toLowerCase();
        if ("http".equals(protocol)) {
            return new Handler();
        } else {
            return null;
        }
    }
 
    public static void main(String[] args) {
        System.out.println("override the default WebLogic Server" +
                           " HTTP stream handler");
         
        try {
            java.net.URL
                    .setURLStreamHandlerFactory(new MyURLStreamHandlerFactory());
        } catch (Exception e) {
            System.err.println("Exception while setting" +
                               " the URLStreamHandlerFactory object" + e);
        }
    }
}

 
 
執行環境
JDK 1.4.2_11
Weblogic 8.1 sp6

參考資料
Weblogic Server Command-Line Reference

程式下載
FwURLStreamHandlerFactory.java

廣告

2012/03/19 - Posted by | Application Server |

2 則迴響 »

  1. Thanks to my father who stated to me regarding this web site, this website is truly awesome.

    迴響 由 football quotes | 2014/03/01 | 回應

  2. Hi there! Do you know if they make any plugins to assist with Search Engine Optimization? I’m trying to get my blog
    to rank for some targeted keywords but I’m not seeing very
    good success. If you know of any please share. Appreciate it!

    迴響 由 acorn tree | 2014/06/13 | 回應


發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

w

連結到 %s

%d 位部落客按了讚: