Apache 2.4.6 метод пут не разрешен - PullRequest
0 голосов
/ 02 августа 2020

Я новичок в 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>
...