Я новичок в Apache веб-сервере, я настраиваю виртуальный хост с портом 3123, когда я отправляю java httpclient putmethod, я получаю ответ «405 Method Not Allowed», я не знаю, какая конфигурация не хватает на Apache.
<VirtualHost *:3123>
ServerName mysite.com
DocumentRoot /usr/local/mysite
<Directory /usr/local/mysite/>
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Мой Java код для загрузки файла,
import java.io.FileInputStream;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.InputStreamRequestEntity;
import org.apache.commons.httpclient.methods.PutMethod;
import org.apache.commons.httpclient.methods.RequestEntity;
public class App {
public static void main(String[] args) {
PutMethod put = null;
boolean success = false;
HttpClient client = new HttpClient();
try {
put = new PutMethod("http://mysite:3123/images/taxflower2.jpg");
String fileName = "C:\\Users\\name\\Downloads\\taxflower2.jpg";
RequestEntity entity = new InputStreamRequestEntity(new FileInputStream(fileName));
put.setRequestEntity(entity);
client.getHttpConnectionManager().getParams().setConnectionTimeout(10000);
int status = client.executeMethod(put);
if ((status == HttpStatus.SC_OK) || (status == HttpStatus.SC_ACCEPTED) || (status == HttpStatus.SC_CREATED)
|| (status == HttpStatus.SC_NO_CONTENT)) {
success = true;
} else {
byte[] responseBody = put.getResponseBody();
System.out.println(new String(responseBody));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (put != null) {
put.releaseConnection();
}
}
}
}
Ответ:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>405 Method Not Allowed</title>
</head><body>
<h1>Method Not Allowed</h1>
<p>The requested method PUT is not allowed for the URL /images/taxflower2.jpg.</p>
</body></html>