Настройка пользовательских заголовков для запросов HTTP PUT, не заданных для wagon: загрузка
Мне нужно установить http-заголовок "Content-Type: application/json" при загрузке моих тестовых данных с помощью wagon:upload. Я настраиваю сервер, как описано в: Расширенные настройки HttpClient HTTP Wagon
Вот моя конфигурация вагонов в pom.xml:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>1.0</version>
<configuration>
<serverId>wagon-upload-test-data</serverId>
<url>http://localhost:8000/</url>
<fromDir>${project.basedir}/src/test/resources/testdata/</fromDir>
</configuration>
<executions>
<execution>
<id>upload-test-resources</id>
<phase>generate-test-resources</phase>
<goals>
<goal>upload</goal>
</goals>
</execution>
</executions>
</plugin>
И вот конфигурация настроек maven серверов:
<settings>
...
<servers>
<server>
<id>wagon-upload-test-data</id>
<configuration>
<!-- also tried with and without global configuration -->
<httpHeaders>
<httpHeader>
<name>Content-Type</name>
<value>application/json</value>
</httpHeader>
</httpHeaders>
<httpConfiguration>
<all> <!-- also tried with put -->
<useDefaultHeaders>false</useDefaultHeaders> <!-- tried with true -->
<headers>
<header>
<name>Content-Type</name>
<value>application/json</value>
</header>
<header>
<name>Accept</name>
<value>*/*</value>
</header>
</headers>
</all>
</httpConfiguration>
</configuration>
</server>
</servers>
</settings>
Когда я вызываю плагин, он работает нормально, мои тестовые данные помещаются на сервер, но настройки сервера, похоже, игнорируются - вот HTTP-запрос PUT, который я всегда получаю на своем тестовом сервере:
cache-control: no-cache
cache-store: no-store
pragma: no-cache
expires: 0
accept-encoding: gzip
content-length: 132
host: localhost:8000
connection: Keep-Alive
user-agent: Apache-HttpClient/4.3.5 (java 1.5)
x-php-ob-level: 0
{
"users": [{
"username" : "dummyMachine",
"score" : 3456
}, {
"username" : "dumminister",
"score" : 4125
}]
}
Чтобы убедиться, что был использован правильный файл настроек maven, я также запустил wagon: upload с тегом -X, вот несколько журналов:
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T18:41:47+02:00)
Maven home: /usr/local/Cellar/maven/3.3.9/libexec
Java version: 1.8.0_92, vendor: Oracle Corporation
...
Reading global settings from /usr/local/Cellar/maven/3.3.9/libexec/conf/settings.xml
[DEBUG] Reading user settings from /Users/martindobrev/.m2/settings.xml
---> COMMENT: THE SETTINGS FILE USED IS THE CORRECT ONE !!!
...
...
[DEBUG] Goal: org.codehaus.mojo:wagon-maven-plugin:1.0:upload (default-cli)
[DEBUG] Style: Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<excludes>${wagon.excludes}</excludes>
<followSymLink default-value="false">${wagon.followSymLink}</followSymLink>
<fromDir default-value="${project.basedir}">/PATH_TO_M/src/test/resources/testdata/</fromDir>
<includes>${wagon.includes}</includes>
<optimize default-value="false">${wagon.optimize}</optimize>
<project default-value="${project}"/>
<serverId default-value="serverId">wagon-upload-test-data</serverId>
<settings default-value="${settings}"/>
<skip default-value="false">${wagon.skip}</skip>
<toDir default-value="">${wagon.toDir}</toDir>
<url>http://localhost:8000/</url>
<useDefaultExcludes default-value="true">${wagon.useDefaultExcludes}</useDefaultExcludes>
</configuration>
Что я делаю неправильно? Может кто-нибудь, пожалуйста, помогите мне решить эту проблему!!!
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ: 13.10.2016
Я пробовал разные версии maven и wagon-upload - похоже, ничего не работает. Вот простой проект на github, чтобы проверить проблему