在弹簧启动时使用带有假带的假装无法解析标题

时间:2016-01-06 20:34:09

标签: java spring-boot netflix netflix-feign

我正在使用功能区进行一些测试并假装连接到api。 api正在使用spring boot运行:

@Controller
@EnableAutoConfiguration
public class MovieService {

    @RequestMapping("/")
    @ResponseBody
    List<String> findAllMovies() {
        System.out.println("finding all movies");
        return Arrays.asList("start wars", "inception", "the martian");
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(MovieService.class, args);
    }
}

这是我的客户端代码使用: 假装界面:

public interface MovieService {

    @RequestLine("GET /")
    List<String> findAllMovies();

}

当我单独使用假装时,一切正常:

public class MovieClient {

    public static void main(String args[]) {
        MovieService movieService = Feign.builder()
                .decoder(new GsonDecoder())
                .target(MovieService.class, "http://localhost:8080");
        System.out.println(movieService.findAllMovies());

    }

}

但是当我也使用功能区时:

public class MovieClient {

    public static void main(String args[]) {
        ConfigurationManager.getConfigInstance().setProperty("MovieService.ribbon." + CommonClientConfigKey.MaxAutoRetriesNextServer, "3");
        ConfigurationManager.getConfigInstance().setProperty("MovieService.ribbon." + CommonClientConfigKey.ListOfServers, "localhost:8080");

        MovieService movieService = Feign.builder().client(RibbonClient.create()).target(MovieService.class, "https://MovieService");
        System.out.println(movieService.findAllMovies());
    }

}

我在spring boot server logging中收到以下错误:

2016-01-06 21:26:50.670  INFO 61353 --- [nio-8080-exec-1] o.a.coyote.http11.Http11NioProcessor     : Error parsing HTTP request header
 Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.

java.lang.ArrayIndexOutOfBoundsException: -64
    at org.apache.coyote.http11.AbstractNioInputBuffer.parseHeader(AbstractNioInputBuffer.java:474) ~[tomcat-embed-core-8.0.30.jar:8.0.30]
    at org.apache.coyote.http11.AbstractNioInputBuffer.parseHeaders(AbstractNioInputBuffer.java:381) ~[tomcat-embed-core-8.0.30.jar:8.0.30]
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1025) ~[tomcat-embed-core-8.0.30.jar:8.0.30]
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674) [tomcat-embed-core-8.0.30.jar:8.0.30]
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) [tomcat-embed-core-8.0.30.jar:8.0.30]
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) [tomcat-embed-core-8.0.30.jar:8.0.30]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_05]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_05]
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.0.30.jar:8.0.30]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_05]

看起来我在春季启动应用程序中收到以下标题:

2016-01-06 21:43:52.606 DEBUG 61415 --- [nio-8080-exec-9] o.a.c.http11.InternalNioInputBuffer      : Received [ÏËV|jà^kgáxþæèðMn¨{oý²]Aì7FÀ#À'<À%À)g@À  À/ÀÀ32ÀÀÀÀÀ+À/À-À1¢ÀÀ
ÿ\
42  

知道我做错了什么吗?我错过了什么吗?

0 个答案:

没有答案