sofastack / sofa-rpc

SOFARPC is a high-performance, high-extensibility, production-level Java RPC framework.
https://www.sofastack.tech/sofa-rpc/docs/Home
Apache License 2.0
3.81k stars 1.17k forks source link

Use the https domain name report to send the address to the remote catch error: HTTP 302 Found #779

Closed mailfly closed 4 years ago

mailfly commented 5 years ago

使用直连调用: @SofaReference(jvmFirst = false, binding = @SofaReferenceBinding(bindingType = "rest",directUrl = "https://www.xxx.com")) private SimpleApi simpleApi ; 调用的时候报如下错误: 2019-08-30 18:00:04,820 [SOFA-SEV-REST-BIZ-8888-6-T1] INFO com.alipay.sofa.common.log- Connect to com.demo.simple.sofa.SimpleApi provider:https://www.baidu.com success ! The connection is www.baidu.com:80 <-> 172.20.19.82:0 2019-08-30 18:00:04,932 [SOFA-SEV-REST-BIZ-8888-6-T1] ERROR c.p.f.microservice.starter.sofa.resteasy.exception.SofaRpcExceptionMapper- Unhandled SofaRpcException: com.alipay.sofa.rpc.core.exception.SofaRpcException com.alipay.sofa.rpc.core.exception.SofaRpcException: Send message to remote catch error: HTTP 302 Found at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.extractResult(ClientInvocation.java:189) at org.jboss.resteasy.client.jaxrs.internal.proxy.extractors.BodyEntityExtractor.extractEntity(BodyEntityExtractor.java:60) at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invokeSync(ClientInvoker.java:150) at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invoke(ClientInvoker.java:112) at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke(ClientProxy.java:76) at com.sun.proxy.$Proxy90.https(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.alipay.sofa.rpc.transport.AbstractProxyClientTransport.doInvokeSync(AbstractProxyClientTransport.java:200) at com.alipay.sofa.rpc.transport.AbstractProxyClientTransport.syncSend(AbstractProxyClientTransport.java:162) at com.alipay.sofa.rpc.client.AbstractCluster.doSendMsg(AbstractCluster.java:514) at com.alipay.sofa.rpc.client.AbstractCluster.sendMsg(AbstractCluster.java:485) at com.alipay.sofa.rpc.filter.ConsumerInvoker.invoke(ConsumerInvoker.java:60) at com.alipay.sofa.rpc.filter.FilterInvoker.invoke(FilterInvoker.java:98) at com.alipay.sofa.rpc.filter.FilterInvoker.invoke(FilterInvoker.java:98) at com.alipay.sofa.rpc.filter.FilterInvoker.invoke(FilterInvoker.java:98) at com.alipay.sofa.rpc.filter.RpcReferenceContextFilter.invoke(RpcReferenceContextFilter.java:80) at com.alipay.sofa.rpc.filter.FilterInvoker.invoke(FilterInvoker.java:98) at com.alipay.sofa.rpc.filter.ConsumerExceptionFilter.invoke(ConsumerExceptionFilter.java:37) at com.alipay.sofa.rpc.filter.FilterInvoker.invoke(FilterInvoker.java:98) at com.alipay.sofa.rpc.filter.FilterChain.invoke(FilterChain.java:262) at com.alipay.sofa.rpc.client.AbstractCluster.filterChain(AbstractCluster.java:478) at com.alipay.sofa.rpc.client.FailoverCluster.doInvoke(FailoverCluster.java:66) at com.alipay.sofa.rpc.client.AbstractCluster.invoke(AbstractCluster.java:285) at com.alipay.sofa.rpc.client.ClientProxyInvoker.invoke(ClientProxyInvoker.java:83) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.alipay.sofa.rpc.filter.ProviderInvoker.invoke(ProviderInvoker.java:99) at com..framework.microservice.starter.sofa.log.filter.SofaServerLogFilter.invoke(SofaServerLogFilter.java:28) at com.alipay.sofa.rpc.filter.FilterInvoker.invoke(FilterInvoker.java:98) at com..framework.microservice.starter.sofa.access.filter.AccessControlFilter.invoke(AccessControlFilter.java:37) at com.alipay.sofa.rpc.filter.FilterInvoker.invoke(FilterInvoker.java:98) at com.sofa.rpc.filter.jaegertracer.ProviderTracerJaegerFilter.invoke(ProviderTracerJaegerFilter.java:70) at com.alipay.sofa.rpc.filter.FilterInvoker.invoke(FilterInvoker.java:98) at com.alipay.sofa.rpc.filter.ProviderBaggageFilter.invoke(ProviderBaggageFilter.java:45) at com.alipay.sofa.rpc.filter.FilterInvoker.invoke(FilterInvoker.java:98) at com.alipay.sofa.rpc.filter.RpcServiceContextFilter.invoke(RpcServiceContextFilter.java:62) at com.alipay.sofa.rpc.filter.FilterInvoker.invoke(FilterInvoker.java:98) at com.alipay.sofa.rpc.filter.ProviderExceptionFilter.invoke(ProviderExceptionFilter.java:37) at com.alipay.sofa.rpc.filter.FilterInvoker.invoke(FilterInvoker.java:98) at com.alipay.sofa.rpc.filter.FilterChain.invoke(FilterChain.java:262) at com.alipay.sofa.rpc.server.ProviderProxyInvoker.invoke(ProviderProxyInvoker.java:65)

sofa boot version: 2.6.3

mailfly commented 5 years ago

any update?

khotyn commented 4 years ago

对方提供了一个 HTTPS 的服务么?你希望调用一个 HTTPS 的服务?

mailfly commented 4 years ago

谢谢回复,是的,通过直连调用一个https的服务,比如一个网站如:https://www.baidu.com,这个会报302,如果我是调用一个http://www.tianya.cn/,就OK

mailfly commented 4 years ago

我上传了一个工程,可以验证,https://github.com/mailfly/sofademo 下载启动后,执行curl http://localhost:8080/rest 即可

leizhiyuan commented 4 years ago

那是http的302跳转,rest接口没有做这种跳转的支持。

你访问这种网站,直接用httpclient就好了。

mailfly commented 4 years ago

谢谢回复,如果我要支持的话,是否在rest协议发送请求的那块做支持,因为项目组用了sofa后,不想在额外引入httpclient jar包了