私はこの状況に陥っています。CentOS でサーバーを実行しています (CentOS は仮想マシンの VMware にあります)。ホスト (win7) には、CentOS 上のサーバーへの GET メソッドを作成する必要がある Java プログラムがあります。ホストと仮想マシン間の接続を管理しましたが、CentOS のブラウザーと Java プログラム、およびホスト (win7) のブラウザーから動作しますが、必要なホストの Java プログラムからは動作しません。仮想マシンをオフにしても、タイムアウト例外が発生します。win7 でファイアウォールをオフにしましたが、管理者権限がないため、CentOS でオフにできません。
これはGETメソッドの私のJavaコードです(192.168.11.128は仮想マシンのIPです):
private static void getMethod(){
// Create a method instance.
GetMethod method = new GetMethod("http://192.168.11.128");
// Provide custom retry handler is necessary
method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler(3, false));
try {
// Execute the method.
int statusCode = client.executeMethod(method);
if (statusCode != HttpStatus.SC_OK) {
System.err.println("Method failed: " + method.getStatusLine());
}
// Read the response body.
byte[] responseBody = method.getResponseBody();
// Deal with the response.
// Use caution: ensure correct character encoding and is not binary data
System.out.println(new String(responseBody));
} catch (HttpException e) {
System.err.println("Fatal protocol violation: " + e.getMessage());
e.printStackTrace();
} catch (IOException e) {
System.err.println("Fatal transport error: " + e.getMessage());
e.printStackTrace();
} finally {
// Release the connection.
method.releaseConnection();
}
}
助けてくれてありがとう!