uat环境和生产环境的区别_angular 生产环境 相对路径无效

uat环境和生产环境的区别_angular 生产环境 相对路径无效 本人研发小白一名,时间:2017年12月21(周四),坐标:上海。项目上线,测试环境正常,上UAT环境后访问不到数据,于是开始步步分析,细细琢磨,最终成功上UAT,但影响了上生产环境的时间,造成项目延时发布,第一次遇到这么奇怪的事情,之后就是2017年12月26(周二)的上生产环境,不过可怕的事情还是发生了:本地、测试、UAT环境都正常,生产环境有访问不到数据,直到12月27号2:00才解决,…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

  本人研发小白一名,时间:2017年12月21(周四),坐标:上海。项目上线,测试环境正常,上UAT环境后访问不到数据,于是开始步步分析,细细琢磨,最终成功上UAT,但影响了上生产环境的时间,造成项目延时发布,第一次遇到这么奇怪的事情,之后就是2017年12月26(周二)的上生产环境,不过可怕的事情还是发生了:本地、测试、UAT环境都正常,生产环境有访问不到数据,直到12月27号2:00才解决,以上是问题情景。

这边也想了很长时间:为什么UAT环境代码好好的,正式环境就不行了,拉的是一套代码,不同的地方就是Disconf配置文件了(这里我前后核对了不下六遍,前两遍确实有问题及时做了修改,最后一遍我是一个一个字核对的委屈)。无奈只好各种打Logger看日志,最后抓取到问题点是httpClient工具类的问题,前后重新写了三次httpClient工具类,最终皇天不负有心人。。。以下是我这边出现访问不到数据的三个情况:

1、Disconf环境配置文件的配置(本地、测试、UAT及生产环境都会有所差别),具体看各个环境的访问地址;

2、系统中访问的子系统接口是否同步上了相应的环境,在相应环境上直接访问接口验证是否部署成功;

3、httpClient工具类中http和https是有区别的,线上环境和UAT环境一定要是https://开头的(从发现这个问题和解决花了我不少时间),https是要有安全协议的,下面是我最后成功的httpClient工具类:

 

import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.Map;

import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;

public class HttpsUtils{
	
	public String doGetForHttps(String url, Map<String, String> map, String charset) {
		  HttpClient httpClient = null;
		  String result = null;
		  try {
		   httpClient = new SSLClient();
		   HttpGet httpGet = new HttpGet(url);

		   HttpResponse response = httpClient.execute(httpGet);
		   if (response != null) {
		    HttpEntity resEntity = response.getEntity();
		    if (resEntity != null) {
		     result = EntityUtils.toString(resEntity, charset);
		    }
		   }
		  } catch (Exception ex) {
		   ex.printStackTrace();
		  }
		  return result;
		 }

		 class SSLClient extends DefaultHttpClient {
		  public SSLClient() throws Exception {
		   super();
		   SSLContext ctx = SSLContext.getInstance("TLS");
		   X509TrustManager tm = new X509TrustManager() {
		    @Override
		    public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
		    }

		    @Override
		    public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
		    }

		    @Override
		    public X509Certificate[] getAcceptedIssuers() {
		     return null;
		    }
		   };
		   ctx.init(null, new TrustManager[] { tm }, null);
		   SSLSocketFactory ssf = new SSLSocketFactory(ctx, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
		   ClientConnectionManager ccm = this.getConnectionManager();
		   SchemeRegistry sr = ccm.getSchemeRegistry();
		   sr.register(new Scheme("https", 443, ssf));
		  }
		 }

这边都是用Get方式访问的,做的BI报表。。。当然对大牛来是比较简单(不喜勿喷),个人觉得问题确实不复杂,但是要足够耐心去解决,希望能对我们这些初学者有一定的帮助,代码人生~~~共同成长,加油!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187615.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • unity3D入门_福彩3D深度资料

    unity3D入门_福彩3D深度资料UnityShader中级(Unity2019unity教程初级中级高级扫码时备注或说明中留下邮箱付款后如未回复请加微信630105904联系本博主

    2022年9月19日
    2
  • 功率放大器电路设计「建议收藏」

    功率放大器电路设计「建议收藏」一、实验目的掌握功率放大器的设计方法。了解功率放大器的测试方法。二、实验内容及结果实验内容自主设计一低频功率放大器,满足如下要求:(1)输入正弦信号电压有效值为5mV,在8Ω电阻负载(一端接地)上,输出功率大于1W,输出波形无明显失真;(2)通频带为20Hz~20kHz;(3)输入电阻为600Ω。实验具体要求如下:(1)设计电路,利用Multisim软件绘制电路原理图。(2)阐述功率放大原理。(3)在输入信号有效值为5mV下,测量负载电压有效值,计算实际输出功率,验证是否满

    2022年6月6日
    31
  • java多线程编程面试题_linux多线程面试题

    java多线程编程面试题_linux多线程面试题一、多线程的几种实现方式,什么是线程安全。四种:继承Thread类,实现Runnable接口,实现Callable接口,使用线程池。线程安全:当多个线程访问某个类时,这个类始终都能表现出正确的行为,那么就称这个类是线程安全的。(Java并发编程实战)最核心的概念是正确性。正确性:某个类的行为与其规范完全一致。二、volatile的原理,作用,能代替锁么。volatile的理解三、画一个…

    2022年8月27日
    4
  • hadoop生态圈各个组件简介

    hadoop生态圈各个组件简介1,HDFS(hadoop分布式文件系统)是hadoop体系中数据存储管理的基础。他是一个高度容错的系统,能检测和应对硬件故障。client:切分文件,访问HDFS,与那么弄得交互,获取文件位置信息,与DataNode交互,读取和写入数据。namenode:master节点,在hadoop1.x中只有一个,管理HDFS的名称空间和数据块映射信息,配置副本…

    2022年5月22日
    41
  • 护照快到期了

    护照快到期了,周一上午请了半天假,去办理护照延期。听说大连公安局出入境管理处(以下简称入管处)搬到了泉水。上网查办护照延期需要带身份证,户口本和护照原件。又查了一下得知从数码广场到入管处需要坐26到51广场倒303路在龙泉小学下车,然后往前走1000多米.慢慢

    2022年4月8日
    72
  • JAVASCRIPT拷贝内容到剪切板

    JAVASCRIPT拷贝内容到剪切板

    2021年8月12日
    57

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号