3

Java アプリケーション ( J2SE ) を開発しています。私のアプリケーションでは、( Weblogic の JDNI を使用して) キュー経由でメッセージを送信し、( URLConnection を使用して) HTTP Web URL と対話する必要があります。

URLConnection を使用して HTTP Web と対話しようとすると、成功します。ただし、メッセージがキューによって送信された後、(URLConnection を使用した) HTTP Web との対話は常に失敗します。ソースコードを大幅に削減した結果、最終的にJDNIを設定するコードがUrlConnectionオブジェクトの作成に影響を与えていることがわかりました。

以下は説明用のソースコードです。

private void test() throws IOException, NamingExcpetion {
    HttpUrlConnection c1 = getConnection();
    System.out.println(c1);

    initContext();

    HttpUrlConnection c2 = getConnection();
    System.out.println(c2);
}


public void initContext() throws ... {
    Properties prop = new Properties();

    Prop.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
    Prop.put(Context.PROVIDER_URL, "t3://111.111.111.111:7100");  // my target weblogic server having queues.

    new InitialContext(prop);
    System.out.println("InitialContext() finished!!");
}

public HttpURLConnection getConnection() throws .... {
    URL url = new URL("http://222.222.222.222:8100/login");  // My target server to be interacting via URLConnection; I'm using java.net.URL
    return (HttpURLConnection) url.openConnection();
}


And below is the result.
sun.net.www.protocol.http.HttpURLConnection:http://222.222.222.222:8100/login
InitialContext() finished!!
weblogic.net.http.SOAPHttpURLConnection:http://222.222.222.222:8100/login

InitialContext() メソッドの呼び出しが終了しても HttpURLConnection が返されることを期待していますが、実際には url.openConnction(); によって SOAPHttpURLConnection が返されています。そのため、それを使用して Web ページとやり取りすることはできません。

SOAPHttpURLConnection が返されたのはなぜですか?? どうすればこの問題を解決できますか??

4

1 に答える 1