当前位置: 首页 > 知识库问答 >
问题:

HTTPS和Spring Cloud合约存根运行程序

龚振濂
2023-03-14

当通过负载平衡的RestTemboard发送https请求时,我收到以下堆栈跟踪:

Caused by: org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://securityService/oauth/token": Unrecognized SSL message, plaintext connection?; nested exception is javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:633)
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:580)
    at org.springframework.web.client.RestTemplate.postForEntity(RestTemplate.java:407)
    at org.springframework.web.client.RestTemplate$$FastClassBySpringCGLIB$$aa4e9ed0.invoke()
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:720)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
    at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:85)
    at org.springframework.cloud.netflix.metrics.RestTemplateUrlTemplateCapturingAspect.captureUrlTemplate(RestTemplateUrlTemplateCapturingAspect.java:33)
    at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:629)
    at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:618)
    at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:655)
    at org.springframework.web.client.RestTemplate$$EnhancerBySpringCGLIB$$dfb025c8.postForEntity()
    at com.acme.SecurityService.getBearerToken(SupportServiceImpl.java:62)
    ... 33 more
Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
    at org.springframework.http.client.SimpleBufferingClientHttpRequest.executeInternal(SimpleBufferingClientHttpRequest.java:78)
    at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48)
    at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:53)
    at org.springframework.http.client.InterceptingClientHttpRequest$InterceptingRequestExecution.execute(InterceptingClientHttpRequest.java:93)
    at org.springframework.cloud.client.loadbalancer.RetryLoadBalancerInterceptor$1$1.apply(RetryLoadBalancerInterceptor.java:70)
    at org.springframework.cloud.client.loadbalancer.RetryLoadBalancerInterceptor$1$1.apply(RetryLoadBalancerInterceptor.java:62)
    at org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient.execute(RibbonLoadBalancerClient.java:98)
    at org.springframework.cloud.client.loadbalancer.RetryLoadBalancerInterceptor$1.doWithRetry(RetryLoadBalancerInterceptor.java:60)
    at org.springframework.cloud.client.loadbalancer.RetryLoadBalancerInterceptor$1.doWithRetry(RetryLoadBalancerInterceptor.java:48)
    at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:276)
    at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:157)
    at org.springframework.cloud.client.loadbalancer.RetryLoadBalancerInterceptor.intercept(RetryLoadBalancerInterceptor.java:48)
    at org.springframework.http.client.InterceptingClientHttpRequest$InterceptingRequestExecution.execute(InterceptingClientHttpRequest.java:85)
    at org.springframework.cloud.sleuth.instrument.web.client.TraceRestTemplateInterceptor.response(TraceRestTemplateInterceptor.java:59)
    at org.springframework.cloud.sleuth.instrument.web.client.TraceRestTemplateInterceptor.intercept(TraceRestTemplateInterceptor.java:53)
    at org.springframework.http.client.InterceptingClientHttpRequest$InterceptingRequestExecution.execute(InterceptingClientHttpRequest.java:85)
    at org.springframework.cloud.netflix.metrics.MetricsClientHttpRequestInterceptor.intercept(MetricsClientHttpRequestInterceptor.java:68)
    at org.springframework.http.client.InterceptingClientHttpRequest$InterceptingRequestExecution.execute(InterceptingClientHttpRequest.java:85)
    at org.springframework.http.client.InterceptingClientHttpRequest.executeInternal(InterceptingClientHttpRequest.java:69)
    at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48)
    at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:53)
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:619)
    ... 50 more

如何配置Spring Cloud Contract Stub Runner,使我的Spring Cloud Stub能够通过HTTPS访问?

共有1个答案

拓拔稳
2023-03-14

下面是一个如何使用SSL设置Spring Cloud Contract Wiremock的示例-https://github.com/spring-cloud/spring-cloud-contract/blob/master/samples/wiremock-undertow-ssl/src/main/resources/application.properties。您可以对普通WireMock使用类似的设置。另外,既然您使用的是Spring Cloud,还记得将工件id映射到服务名称吗https://cloud.spring.io/spring-cloud-contract/1.0.x/spring-cloud-contract.html#_stub_runner_spring_cloud

 类似资料:
  • 问题内容: 为什么不能从同一个golang程序中同时运行HTTP和HTTPS? 这是启动两个服务器的代码。.首先启动的服务器将运行-第二个服务器将不运行。 运行程序时没有错误返回,但是请求或超时 这是完整的代码 问题答案: ListenAndServe和ListenAndServeTLS打开侦听套接字,然后循环永远服务于客户端连接。这些函数仅在错误时返回。 主goroutine永远不会进入启动TL

  • 通过Zef安装了Cro,但无法运行“Cro存根”、“Cro运行”等 (编辑:Fedora 28,Fedora的rakudo) 那么,“cro”安装在哪里?哪儿都找不到。 许可证:艺术-2.0 Source-url:https://github.com/croservices/cro-core.git 提供: 19个模块 取决于: 0项 更新:我已经安装了“cro”,没有“cro”(都是小写)。 根

  • 需要确保你有代币 浏览器打开http://127.0.0.1:47778/run_app.html 链(Chain):填写合约所在的链 合约名字(APP Name):填写你要执行的合约,如你刚刚创建的合约,或者其他人已经创建好的合约 合约费用(Cost):如果合约有收费,根据收费填写,如果没有指定,填0,类似卖票系统中的票价 手续费(Energy):这是给矿工的手续费,建议不低于0.01t9,合约

  • 我第一次试用Spring Cloud合同。我试图让我的客户机自动发现合同存根,但即使我的合同在响应中指定了“application/json”的内容类型,我从WireMock获得的内容类型仍然是“application/octet”。我做错了什么? 我的服务中有一个简单的方法,它从endpoint返回这样的模型: 我的合同是这样的: 在我的客户端中,我有一个类,它使用Spring来查询此endpo

  • 我试图通过在传入字符串“John”时返回一个用户对象来建立类(spring-data-jpa存储库)的方法。 发生的情况是,在userService中,当调用users.findbyUsername(“John”)时,它总是返回null,而不是我定义的任何用户对象: 当我在测试方法中放置断点并比较users和UserService.users时,它们是相等的。 pom版本

  • 问题内容: 当我将https更改为tomcat 7.0的server.xml中的安全连接时 从IDE运行Tomcat时出现错误 造成原因:java.io.FileNotFoundException:C:\ Documents and Settings \ User.keystore(系统找不到指定的文件),位于java.io.FileInputStream.open(本机方法) 但是运行tomca