一、Jenkins 密码遗忘?

Jenkins专有用户的数据存放在JENKINS_HOME/users目录。users目录的结构我就不扯了,你一看就懂。users/xxx(各种用户名) 如上:

1 打开忘记密码的用户文件夹,里面就一个文件config.xml。
2 打开config.xml,里面有一堆的东西,找找。。。找到<passwordHash>节点。
3 把<passwordHash>节点的内容(图中黑色的那一串)换成#jbcrypt:$2a$10$DdaWzN64JgUtLdvxWIflcuQu2fgrrMSAMabF5TSrGK5nXitqK9ZMS(注意前后有木有空格)
4 保存,重启Jenkins程序。
5 输入用户名,密码111111

二、 classpath 和 classpath* 区别:

classpath:只会到你指定的class路径中查找文件;
classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找.

三、idea maven项目 热部署(SpringBoot热部署)

1) “File” -> “Settings” -> “Build,Execution,Deplyment” -> “Compiler”,选中打勾 “Build project automatically” 。

2) 组合键:“Shift+Ctrl+Alt+/” ,选择 “Registry” ,选中打勾 “compiler.automake.allow.when.app.running” 。

四、IntelliJ Idea 常用快捷键列表

psvm 创建main方法
for 循环
sout == System.out.println();
ctrl+alt+v 创建返回值对象
alt+Enter 错误提示修正
ctrl+c 复制当前一行
Ctrl+Y:不再是对应Ctrl+Z的恢复,而是删除上一行,IDEA中恢复是Ctrl+Shit+Z
ctrl+shift+上 上移一行
ctrl+shift+下 下移一行
ctrl+shift+F 查找,类似eclipse的ctrl+h

Alt+回车 导入包,自动修正
Ctrl+N 查找类
Ctrl+Shift+N 查找文件
Ctrl+Alt+L 格式化代码
Ctrl+Alt+O 优化导入的类和包
Alt+Insert 生成代码(如get,set方法,构造函数等)
Ctrl+E或者Alt+Shift+C 最近更改的代码
Ctrl+R 替换文本
Ctrl+F 查找文本
Ctrl+Shift+Space 自动补全代码
Ctrl+空格 代码提示
Ctrl+Alt+Space 类名或接口名提示
Ctrl+P 方法参数提示
Ctrl+Shift+Alt+N 查找类中的方法或变量
Alt+Shift+C 对比最近修改的代码

Shift+F6 重构-重命名
Ctrl+Shift+先上键
Ctrl+X 删除行
Ctrl+D 复制行
Ctrl+/ 或 Ctrl+Shift+/ 注释(// 或者/*...*/ )
Ctrl+J 自动代码
Ctrl+E 最近打开的文件
Ctrl+H 显示类结构图
Ctrl+Q 显示注释文档
Alt+F1 查找代码所在位置
Alt+1 快速打开或隐藏工程面板
Ctrl+Alt+ left/right 返回至上次浏览的位置
Alt+ left/right 切换代码视图
Alt+ Up/Down 在方法间快速移动定位
Ctrl+Shift+Up/Down 代码向上/下移动。
F2 或Shift+F2 高亮错误或警告快速定位

代码标签输入完成后,按Tab,生成代码。
选中文本,按Ctrl+Shift+F7 ,高亮显示所有该文本,按Esc高亮消失。
Ctrl+W 选中代码,连续按会有其他效果
选中文本,按Alt+F3 ,逐个往下查找相同文本,并高亮显示。
Ctrl+Up/Down 光标跳转到第一行或最后一行下
Ctrl+B 快速打开光标处的类或方法

五、JSON跨域问题:

一、跨域问题的原因:

1 浏览器的检查

2 跨域

3 XMLHttpRequest请求

二、跨域问题的解决:

1 禁止浏览器检查:
使用dos命令,在启动浏览器的时候,加一个参数:
chrome --disable-web-security --user-data-dir=g:\temp3
2 JSONP:
JSONP是什么:

  JSONP是一种协议
JSONP解决跨域的时候后台代码需要改变吗:

  需要。
需要加一个切面:

@ControllerAdvice

并且让这个类要继承AbstractJsonpResponseBodyAdvice
并且重写构造方法:

1   JsonpAdvice(){
2     super("callback");
3   }

JSONP的实现原理:
JSONP的弊端:
  服务器需要改动代码
  只支持GET
  发送的不是XHR请求
3 请求是跨域的与隐藏跨域:
被调用方解决:
服务器端实现:
配置Filter:

1 @Bean
2 public FilterRegistrationBean registerFilter(){
3     FilterRegistrationBean bean=new FilterRegistrationBean();
4     bean.addUrlPattern("/*");
5     bean.setFilter(new CrosFilter());
6 }

创建一个Filter:

public class CrosFilter implements Filter{@Overridepublic void init(FilterConfig filterConfig) throws ServletException{}@Overridepublic void doFilter(ServletRequest request,ServletResponse         response,FilterChain filterChain)throws IOException,     ServletException{HttpServletResponse res=(HttpServletResponse)response;res.addHeader("Access-Control-Allow-Origin","http://localhost:8081");res.addHeader("Access-Control-Allow-Methods","GET");res.addHeader("Access-Control-Allow-Headers","Content-Type");filterChain.doFilter(request,response);}
}

此处的res.addHeader("Access-Control-Allow-Origin","*");可以使用*来表示所有的域,方法也可以使用*来表示所有的方法。
简单请求和非简单请求:
  工作中比较常见的【简单请求】:
    方法为:GET HEAD POST
    请求header里面:无自定义头、Content-Type为以下几种:
    text/plain
    multipart/form-data
    application/x-www-form-urlencoded
  工作中比较常见的【非简单请求】:
    put,delete方法的ajax请求
    发送json格式的ajax请求
    带自定义头的ajax请求
    OPTIONS预检命令:
    OPTIONS预检命令缓存:

res.addHeader(“Access-Control-Max-Age”,”3600”);//表示在一小时内缓存这个OPTIONS信息,不用每次请求都请求两次。

带Cookie的跨域问题:
Origin必须是全匹配,不能使用*,必须指定域名;并且需要在Filter里面增加:
res.addHeader(“Access-Control-Allow-Credentials”,”true”);
带自定义头的跨域问题:
被调用方-Nginx解决方案:
1 配置虚拟文件vhost:在nginx的目录中创建一个文件夹,命名为vhost,并在nginx的配置文件中的最后一行中加入以下代码:include vhost/*.conf,将vhost中的.conf文件加载进来。
2 在vhost文件夹下新建一个文件b.com.conf,使用nginx的语法,在该文件中加入以下内容:

1 server{
2     listen 80; //监听的端口
3     server_name b.com;
4     location /{
5     proxy_pass http://localhost:8080/;
6     }
7 }

此时访问b.com便可以代替之前的localhost:8080进行访问。
3 继续在以上文件中添加:

 1 location /{
 2     proxy_pass http://localhost:8080/;
 3     add_header Access-Control-Allow-Methods *;
 4     add_header Access-Control-Max-Age 3600;
 5     add_header Access-Control-Allow-Credentials true;
 6
 7     add_header Access-Control-Allow-Origin $http_origin;
 8     add_header Access-Control-Allow-Headers
 9     $http_access_control_request_headers;
10     if ($request_method=OPTIONS){
11     return 200;
12     }
13 }

Apache配置:
1 打开apache根目录下的conf文件夹下的httpd.conf文件,并搜索vhost,解开LoadModule vhost_alias_module modules/mod_vhost_alias.so
2 继续搜索vhost,解开Include conf/extra/httpd-vhosts.conf
3 打开conf文件夹下的extra文件夹下的httpd-vhosts.conf
4 增加一个虚拟主机,复制一份,并且修改为以下内容:

1 <VirtualHost *:80>
2     ServerName b.com
3     ErrorLog "logs/b.com-error.log"
4     CustomLog "logs/b.com-access.log" common
5     ProxyPass / http://localhost:8080/
6 </VirtualHost>

5 在httpd.conf文件中解开proxy模块:LoadModule proxy_module modules/mod_proxy.so (140行)
6 在httpd.conf文件中解开proxy http模块:LoadModule proxy_http_module modules/mod_proxy_http.so
7 进入apache的bin目录,双击httpd.exe文件,启动apache。
8 在httpd-vhosts.conf文件中增加响应头:

 1 <VirtualHost *:80>
 2     ServerName b.com
 3     ErrorLog "logs/b.com-error.log"
 4     CustomLog "logs/b.com-access.log" common
 5     ProxyPass / http://localhost:8080/
 6
 7     #把请求头的origin值返回到Access-Control-Allow-Origin字段
 8     Header always set Access-Control-Allow-Origin "expr=%
 9    {req:origin}"
10
11     #把请求头的Access-Control-Request-Headers值返回到Access-Control-Allow-Headers字段
12     Header always set Access-Control-Allow-Headers "expr=%
13     {req:Access-Control-Request-Headers}"
14
15     Header always set Access-Control-Allow-Methods "*"
16     Header always set Access-Control-Max-Age "3600"
17     Header always set Access-Control-Allow-Credentials "true"
18
19     #处理预检命令OPTIONS,直接返回204
20     RewriteEngine On
21     RewriteCond %{REQUEST_METHOD} OPTIONS
22     RewriteRule ^(.*)$ "/"[R=204,L]
23 </VirtualHost>  

9 在httpd.conf文件中,解开headers模块:LoadModule headers_module modules/mod_headers.so
10 在httpd.conf文件中,打开rewrite模块:LoadModule rewrite_module modules/mod_rewrite.so

Spring框架的跨域解决:
在控制器中使用@CrossOrigin注解
调用方解决-隐藏跨域:
1 在hosts文件中,增加一个虚拟域名:127.0.0.1 b.com a.com
2 在nginx的vhosts文件夹中新建一个a.com.conf,打开:

 1 server{
 2     listen 80;
 3     server_name a.com;
 4     location /{
 5     proxy_pass http://localhost:8081/;
 6     }
 7     location /ajaxserver{
 8     proxy_pass http://localhost:8080/test/;
 9     }
10 }

六、Jetty的安装:

前提:必须安装jdk。
1.下载Jetty安装包:http://dist.codehaus.org/jetty/jetty-6.1.22/
2.解压至任意目录
3.直接进入bin目录,双击Jetty-Service.exe。启动成功
4.地址栏直接输入http://localhost:8080
ps:
1.修改E:\jetty-6.1.22\etc\ jetty.xml文件中的如下代码,将8080改为相应的端口号即可
2.myeclipse使用Jetty跟tomcat一样,选择jetty目录便可。

七、解决windows无法创建.gitignore文件:

今天打算把本地的项目用git推送到github上去,但是有的信息我又不想把它加入到版本控制系统中去,例如.classpath文件和.class文件等等,这个时候我就想到了使用.gitignore文件把不需要做版本控制的文件排除出去,我打算在我的项目根目录下新建一个.gitignore文件,当我写好文件名并按下回车键的时候我得到了这个错误。

不知道从Windows的哪个版本开始,系统不能创建.xxx的文件了,我记得XP系统还可以创建这种文件的。谷歌了各种解决方案,最终在stackoverflow上面找到了比较好的解决方案:

1. 在项目根目录下面创建gitignore.txt文件

2. 把你需要排除的文件名保存到gitignore.txt文件

3. 在项目根目录下面按住Shift键并邮件然后选择“在此处打开命令窗口”

4. 执行命令 ren gitignore.txt .gitignore

大功告成了!

或者:创建一个文件,文件名为:“.gitignore.”,注意前后都有一个点。保存之后系统会自动重命名为“.gitignore”。

八、dubbo工作流程:

首先是容器初始化providerprovider向注册中心(Zookeeper)注册服务,

Consumer启动时,首先去Zookeeper上订阅需要消费URL,说白了就是拿到一个List<URL>即可

然后dubbo拿到这个List<URL>后,通过一种算法选择list中的一个URL,然后使用这个URL中的IP和端口,来发起一个invoke请求(你可以理解发送了一个HTTP请求)
而这请求都会被dubbo收集下来了,然后发送到远程进行保存。

dubbo工作流程图:

九、Android一些基本概念:

1 Activity

三个状态:创建、暂停、结束

七个周期:onCreate(),onStart(),onResume(),onPause(),onStop(),onRestart(),onDestroy()

打开另外一个Activity:
绑定按钮的onclick事件,实现onclick方法,创建一个Intent对象,获取当前activity的对象,绑定的activity对象,startActivity():

1 btn=(Button)findViewById(R.id.btn);//绑定某个按钮
2 btn.setOnclickListener(new View.OnClickListener(){//注册按钮监听事件
3 #Override
4 public void onClick(View v){
5 Intent i=new Intent(MainActivity.this,Aty1.class);//创建Intent对象
6 startActivity(i);//打开另外一个Activity
7 }
8 })

Activity传值:
1 i.putExtra(String,String) -> getIntent().getExtraString("")
2 Bundle 对象传递数据:
Bundle data = new Bundle();

怎么获取第二个Activity返回的值?
//在主Activity中:
使用startActivityResult(i,requestCode);
重写:

1 @Override
2 protected void onActivityResult(int requestCode,resultCode,Intent data){
3     String result=data.getStringExtra("result");
4     super.onActivityResult(requestCode,resultCode,data);
5 }

//在第二个Activity中:

setResult(int resultCode,Intent data);

2 Service 后台处理信息,可以一直运行在后台

 1 @Override
 2 onCreate()//创建Service的方法
 3 @Override
 4 onDestroy()//关闭Service的方法
 5 @Override
 6 public IBinder onBind(Intent intent) //绑定服务
 7 创建Service的方法:
 8 Intent serviceIntent=new Intent(this,EchoService);//第一个参数是当前的Activity,第二个参数是Service类的名字
 9
10 startService(serviceIntent);//点击按钮时,开启服务
11 stopService(serviceIntent);//点击按钮时,关闭服务
12 bindService(serviceIntent,this,Context.BIND_AUTO_CREATE);//点击按钮时,    绑定某个服务
13 unbindService(this);//点击按钮时,关闭服务。

在使用Service时,需要主Activity实现ServiceConnection,并实现未实现的方法:

1 @Override
2 public void onServiceConnected(ComponentName name,IBinder service);//当成功绑定时,做某些操作
3 @Override
4 public void onServiceDisconnected(ComponentName name);//当服务断开连接时,做某些操作

此时无法执行到onServiceConnected()方法,是因为只执行了onCreate()和onBind()方法,而onBind()方法中有一个返回对象是IBinder,需要给一个返回对象。
想要真正绑定服务成功,需要在EchoService中创建:

 1 public IBinder onBind(Intent intent){
 2
 3 return echoSerivceBinder;
 4 }
 5
 6 private final EchoServiceBinder echoSerivceBinder=new EchoServiceBinder();
 7
 8 public class EchoServiceBinder extends Binder{//内部类
 9
10 }

十、:maven打包带main函数:

 1  <build>
 2         <!-- 配置文件 -->
 3       <resources>
 4             <resource>
 5                     <targetPath>${project.build.directory}/classes</targetPath>
 6                 <directory>src/main/resources</directory>
 7                 <filtering>true</filtering>
 8                 <includes>
 9                     <include>**/*.xml</include>
10                     <include>**/*.properties</include>
11                 </includes>
12             </resource>
13             <resource>
14                 <targetPath>${project.build.directory}/classes/META-INF</targetPath>
15                 <directory>src/main/resources</directory>
16                 <filtering>true</filtering>
17                 <includes>
18                     <include>spring-context.xml</include>
19                 </includes>
20             </resource>
21         </resources> -->
22
23         <pluginManagement>
24             <plugins>
25                 <!-- 解决Maven插件在Eclipse内执行了一系列的生命周期引起冲突 -->
26                 <plugin>
27                     <groupId>org.eclipse.m2e</groupId>
28                     <artifactId>lifecycle-mapping</artifactId>
29                     <version>1.0.0</version>
30                     <configuration>
31                         <lifecycleMappingMetadata>
32                             <pluginExecutions>
33                                 <pluginExecution>
34                                     <pluginExecutionFilter>
35                                         <groupId>org.apache.maven.plugins</groupId>
36                                         <artifactId>maven-dependency-plugin</artifactId>
37                                         <versionRange>[2.0,)</versionRange>
38                                         <goals>
39                                             <goal>copy-dependencies</goal>
40                                         </goals>
41                                     </pluginExecutionFilter>
42                                     <action>
43                                         <ignore />
44                                     </action>
45                                 </pluginExecution>
46                             </pluginExecutions>
47                         </lifecycleMappingMetadata>
48                     </configuration>
49                 </plugin>
50             </plugins>
51         </pluginManagement>
52         <plugins>
53             <!-- 打包jar文件时,配置manifest文件,加入lib包的jar依赖 -->
54             <plugin>
55                 <groupId>org.apache.maven.plugins</groupId>
56                 <artifactId>maven-jar-plugin</artifactId>
57                 <configuration>
58                     <classesDirectory>target/classes/</classesDirectory>
59                     <archive>
60                         <manifest>
61                             <!-- 主函数的入口 -->
62                             <mainClass>tpri.mina.execute.Main</mainClass>
63                             <!-- 打包时 MANIFEST.MF文件不记录的时间戳版本 -->
64                             <useUniqueVersions>false</useUniqueVersions>
65                             <addClasspath>true</addClasspath>
66                             <classpathPrefix>lib/</classpathPrefix>
67                         </manifest>
68                         <manifestEntries>
69                             <Class-Path>.</Class-Path>
70                         </manifestEntries>
71                     </archive>
72                 </configuration>
73             </plugin>
74             <plugin>
75                 <groupId>org.apache.maven.plugins</groupId>
76                 <artifactId>maven-dependency-plugin</artifactId>
77                 <executions>
78                     <execution>
79                         <id>copy-dependencies</id>
80                         <phase>package</phase>
81                         <goals>
82                             <goal>copy-dependencies</goal>
83                         </goals>
84                         <configuration>
85                             <type>jar</type>
86                             <includeTypes>jar</includeTypes>
87                             <useUniqueVersions>false</useUniqueVersions>
88                             <outputDirectory>
89                                 ${project.build.directory}/lib
90                             </outputDirectory>
91                         </configuration>
92                     </execution>
93                 </executions>
94             </plugin>
95         </plugins>
96     </build>   

View Code

 

转载于:https://www.cnblogs.com/laowangc/p/8920028.html

常见问题及解决方案(后端篇)相关推荐

  1. 开发中遇到的问题和经验 记录 ------- 后端篇

    核心价值就是把现实世界的业务操作搬到计算机上,通过计算机软件和网络进行业务和数据处理,但是时至今日,能用计算机软件提高效率的地方,几乎已经被全部发掘过了,必须能够发掘出用户自己都没有发现的需求,必须洞 ...

  2. 移动端H5常见问题以及解决方案

    移动端H5常见问题以及解决方案 问题 下面列举了我遇到的一些常规问题,如有遇到其他问题的请在评论区补充,之后我也会实践加以补充,感谢! 以下解决方案,均经过我测试成功,健康安全,请放下食用.由于篇幅问 ...

  3. Web Service 安全性解决方案(SOAP篇)

    拼吾爱程序人生 » 软件编程 » Visual Studio.NET » Web Service » Web Service 安全性解决方案(SOAP篇) Web Service 安全性解决方案(SO ...

  4. OpenStack环境搭建(六:常见问题及解决方案总结)

    实验要求: 完成Virtual box平台安装,会应用相关操作: 在virtual box虚拟平台上部署Fuel Master节点: 在virtual box虚拟平台上部署计算节点Computer: ...

  5. ESXi6.5环境搭建(五:常见问题及解决方案实验总结)

    实验目的及要求 完成VMware workstations安装,会应用相关操作: 完成虚拟机中ESXI6.5平台的安装及网络环境配置: 完成VMware vSphere Client 6.0软件在PC ...

  6. C#中使用WCF一些常见问题及解决方案

    C#中使用WCF一些常见问题及解决方案 参考文章: (1)C#中使用WCF一些常见问题及解决方案 (2)https://www.cnblogs.com/52XF/p/3740326.html 备忘一下 ...

  7. gulp几个常见问题及解决方案

    gulp几个常见问题及解决方案 参考文章: (1)gulp几个常见问题及解决方案 (2)https://www.cnblogs.com/hjson/p/10546708.html 备忘一下.

  8. Mycat常见问题与解决方案

    Mycat常见问题与解决方案 参考文章: (1)Mycat常见问题与解决方案 (2)https://www.cnblogs.com/it-deepinmind/p/11913519.html 备忘一下 ...

  9. [持续更新]UnsatisfiedLinkError常见问题及解决方案

    [持续更新]UnsatisfiedLinkError常见问题及解决方案 参考文章: (1)[持续更新]UnsatisfiedLinkError常见问题及解决方案 (2)https://www.cnbl ...

  10. 【转】常见浏览器兼容性问题与解决方案css篇

    小满语:说到兼容性问题,不得不说一下IE浏览器,尤其是IE9以前,兼容性差的要哭,来,擦擦眼泪,学习一下兼容性问题的解决方案~本篇主要是布局后加样式后导致浏览器显示不统一的情形: 所谓的浏览器兼容性问 ...

最新文章

  1. Dropout和网络结构实现数据增广带来的不同影响分析
  2. Oracle 记录插入时“Invalid parameter binding ”错误
  3. P7 频域分析法-《Matlab/Simulink与控制系统仿真》程序指令总结
  4. 曝!BAT大厂NLP学习进阶之法~
  5. 玛氏携手阿里 天猫网罗全球快消三巨头
  6. numpy.matrixlib.defmatrix.matrix写入csv文件
  7. vb初学者编程代码大全_VB编程应该如何学习?
  8. 【Top1】Tudou.com首页网页设计的制作方法
  9. 【实践驱动开发3-006】TI WL1835MODCOM8 在android的移植 - SDIO wifi驱动的注册步骤
  10. 企业云盘的作用不仅只是存储
  11. IndoorGML 介绍
  12. Codeforces Round #622 (Div. 2) C2. Skyscrapers (hard version)(单调栈)
  13. linux pkg解压工具,Pkg 1.3.0 发布,FreeBSD 的包管理工具
  14. iOS优秀的图片压缩处理方案
  15. 【Unity】一些不错的unity插件
  16. Java中的byte[]/char[]/int/String数据类型转换
  17. flash设置屏保 html,全面淘汰 Flash 带崩经典屏保软件:教你一招搞定它
  18. larry wall
  19. 爱徒难担大任,“药神”孙飘扬被迫出山
  20. java测试单个方法 @Test

热门文章

  1. 在C#中使用反射的简单例子
  2. TypeScript 3.5 发布,速度提升、工具智能
  3. Angular 7和.NET Core 2.2——全球天气(第3部分)
  4. linux hadoop namenode_HADOOP_HDFS伪分布式安装步骤
  5. 函数或变量 rtenslearn_c 无法识别_深度学习的数学-卷积神经网络的结构和变量关系...
  6. python的try和except_Python用try except处理程序异常的三种方法总结
  7. 移动端line-height与height相同文字不居中
  8. mysql 排序取前4,mysql分组取每组前几条记录(排序)
  9. 浪潮服务器硬盘阵列怎么做,server - 浪潮服务器RAID阵列配置及OS安装
  10. linux arm. 快速启动,教你如何快速启动Linux 系统