为没有为旅行车设置的HTTP PUT请求设置自定义标头:upload

时间:2016-10-11 09:00:36

标签: java maven maven-3 maven-wagon-plugin

我需要设置一个http标头" Content-Type:application / json"使用旅行车上传我的测试数据时:上传。我按照Advanced Configuration of the 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:使用-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 - 似乎没什么用。这是一个simple project on github来测试问题

0 个答案:

没有答案
相关问题