6月15
问题现象一:
下载文件达到1min时,报连504 Gateway Time-out接超时。

解决方法:
nginx反向代理默认是60s超时,大文件下载超过了阀值,可以指定超时时间:      

        location /api {
                        proxy_pass http://127.0.0.1:8081;
                        # nginx跟后端服务器连接超时时间
                        proxy_connect_timeout 300;

                        # 后端服务器数据回传超时时间
                        proxy_send_timeout 300;

                        # 连接成功后,后端服务器响应超时时间
                        proxy_read_timeout 300;
                        proxy_set_header Host $host:$server_port;
                }

问题现象二:
通过nginx反向代理下载失败,但是直接通过端口下载正常。

解决方法:
可能是nginx缓存区限制问题,禁用缓存即可。
proxy_pass http://127.0.0.1:5002;
proxy_redirect default;
proxy_buffering off;
6月14
1.在gitlab上找到你要回滚的那个版本 ,复制那次提交的id

点击在新窗口中浏览此图片

2.输入指令,回滚到指定的版本

git reset --hard 复制的id


3.推送到远端(强推)

git push -f origin master
5月31
如将10.0.1.155的/u01/attachments 目录挂载到10.0.1.156对应的/u01/attachments 目录下。
使用以下命令:
mount 10.0.1.155:/u01/attachments /u01/attachments
5月29
一、在项目根目录下安装
npm install --save js-base64
npm install --save js-md5
1
2
二、在项目文件中引入
import md5 from 'js-md5';

let Base64 = require('js-base64').Base64;
1
2
3
三、在项目文件中使用
base64

Base64.encode('heckjj.com');  // aGVja2pqLmNvbQ==
Base64.encode( '大将军');    // 5aSn5bCG5Yab+
Base64.encodeURI('大将军'); // 5aSn5bCG5Yab-

Base64.decode(aGVja2pqLmNvbQ==');  // heckjj.com
Base64.decode('5aSn5bCG5Yab+');  // 大将军
// note .decodeURI() is unnecessary since it accepts both flavors
Base64.decode('5aSn5bCG5Yab-');  // 大将军

md5

md5(''); // d41d8cd98f00b204e9800998ecf8427e
md5('The quick brown fox jumps over the lazy dog'); // 9e107d9d372bb6826bd81d3542a419d6
md5('The quick brown fox jumps over the lazy dog.'); // e4d909c290d0fb1ca068ffaddf22cbd0

// It also supports UTF-8 encoding
md5('中文'); // a7bac2239fcdcb3a067903d8077c4a07

// It also supports byte `Array`, `Uint8Array`, `ArrayBuffer`
md5([]); // d41d8cd98f00b204e9800998ecf8427e
md5(new Uint8Array([])); // d41d8cd98f00b204e9800998ecf8427e

// Different output
md5(''); // d41d8cd98f00b204e9800998ecf8427e
md5.hex(''); // d41d8cd98f00b204e9800998ecf8427e
md5.array(''); // [212, 29, 140, 217, 143, 0, 178, 4, 233, 128, 9, 152, 236, 248, 66, 126]
md5.digest(''); // [212, 29, 140, 217, 143, 0, 178, 4, 233, 128, 9, 152, 236, 248, 66, 126]
md5.arrayBuffer(''); // ArrayBuffer
md5.buffer(''); // ArrayBuffer, deprecated, This maybe confuse with Buffer in node.js. Please use arrayBuffer instead.
Tags: , ,
5月28
Element UI Upload 上传文件上传文件一次 ,不论是上传成功之后修改文件再上传还是上传失败重新上传,再次点击上传均无反应。
方法一:利用 :on-success
ref=‘upload’
:on-success=“handleSuccess”

注意: ref='upload 一定要加上ref 不然不起作用

                <el-upload
                        class="upload-demo"
                        action=""
                        :limit="1"
                        :show-file-list="false"
                        :http-request="uploadLogo"
                        ref='upload'
                        :on-success="handleSuccess"
                >
                    <el-button style="width: 150px; height: 35px;line-height: 0;margin-left: 20px" size="medium"
                               type="primary">
                        {{$t('StaffManage.bulkImport')}}
                    </el-button>
                </el-upload>

        handleSuccess(res, file) {
            this.$refs.upload.clearFiles(); //上传成功之后清除历史记录
            // this.tableReload()
        },

方法二:利用if el-upload让移除文档流
                <el-upload
                        v-if="!form.contractFileUrl"
                        class="upload-demo"
                        action=""
                        :limit="1"
                        :show-file-list="false"
                        :http-request="uploadLogo"
                >
                    <el-button size="medium" type="primary">{{$t('AttendanceInformation.ClickUpload')}}</el-button>
                </el-upload>

            uploadLogo(param) {
                let _this = this
                _this.form.contractFileUrl = '1'
                let formData = new FormData();
                formData.append("file", param.file);
                _this.$send.post({url: '/contract/upload', data: formData}, res => {
                    if (res.code === 10000) {
                        _this.isdisabled = true
                        _this.form.contractFileUrl = res.data.url
                        _this.form.contractFileId = res.data.id
                    } else {
                        _this.form.contractFileUrl = null
                        _this.form.contractFileId = null
                        _this.$msg.error(res.message)
                    }

                })
            },
5月17
sql执行正常的,但是放到mybatisPlus中执行错误报: Failed to process, please exclude the tableName or statementId.

大概率是存在特殊字符使mybatis解析异常
1.在mapper.java中的方法上添加@SqlParser(filter=true)注解
点击在新窗口中浏览此图片

2.如果sql中有注释,删掉注释
点击在新窗口中浏览此图片
4月21
IS浏览器无法读取mp4视频怎么办?针对这个问题,今天总结了这篇文章,希望能帮助更多想解决这个问题的朋友找到更加简单易行的办法。

IIS7以上的不支持mp4的时候提示如下报错

有时候会报404找不到文件,可视频文件明明在,就是访问不到。
由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。

原因:因为服务器IIS默认不支持mp4等一些文件类型,只要在IIS上添加MIME 类型即可。

iis6.0版本

打开iis管理器找到你要设置的站点,右键属性,找到http头,就可以看到mime类型的按钮了,我们点击进去
比如你要添加mp4的mime我们就输入,扩展名.mp4  类型video/mp4,然后点击确人完成后测试下

iis7.5设置

找到你要设置的站点,点击功能视图,找到MIME类型选项
进入mime类型功能之后点击右上角的添加按钮添加扩展名.mp4  类型video/mp4,然后点击确人完成后测试下


常见的mime类型后续更新Mime类型扩展名意义

application/msexcel*.xls *.xlaMicrosoft Excel Dateien

application/mshelp*.hlp *.chmMicrosoft Windows Hilfe Dateien

application/mspowerpoint*.ppt *.ppz *.pps *.potMicrosoft Powerpoint Dateien

application/msword*.doc *.dotMicrosoft Word Dateien

application/octet-stream*.exeexe

video/mp4*.mp4MP4

application/pdf*.pdfAdobe PDF-Dateien

application/postscript*.ai *.eps *.psAdobe Postscript-Dateien

application/rtf*.rtfMicrosoft RTF-Dateien

application/x-httpd-php*.php *.phtmlPHP-Dateien

application/x-javascript*.jsserverseitige JavaScript-Dateien

application/x-shockwave-flash*.swf *.cabFlash Shockwave-Dateien

application/zip*.zipZIP-Archivdateien

audio/basic*.au *.sndSound-Dateien

audio/mpeg*.mp3MPEG-Dateien

audio/x-midi*.mid *.midiMIDI-Dateien

audio/x-mpeg*.mp2MPEG-Dateien

audio/x-wav*.wavWav-Dateien

image/gif*.gifGIF-Dateien

image/jpeg*.jpeg *.jpg *.jpeJPEG-Dateien

image/x-windowdump*.xwdX-Windows Dump

text/css*.cssCSS Stylesheet-Dateien

text/html*.htm *.html *.shtml-Dateien

text/javascript*.jsJavaScript-Dateien

text/plain*.txtreine Textdateien

video/mpeg*.mpeg *.mpg *.mpeMPEG-Dateien

video/vnd.rn-realvideo*.rmvbrealplay-Dateien

video/quicktime*.qt *.movQuicktime-Dateien

video/vnd.vivo*viv *.vivoVivo-Dateien
4月7
(一)事务传播机制 7种

    Required (默认):

        如果当前没有事务,就新建一个事务,如果已存在一个事务中

        加入到这个事务中,这是最常见的选择。

    Supports :

        支持当前事务,如果没有当前事务,就以非事务方法执行。

    Mandatory :

        中文翻译为强制,支持使用当前事务,如果当前事务不存在,则抛出Exception。

    Requies_new :

        创建一个新事务,如果当前事务存在,把当前事务挂起。

    Not_Supported :

        无事务执行,如果当前事务存在,把当前事务挂起。

    Never :

         无事务执行,如果当前有事务则抛出Exception。

    Nested :

        嵌套事务,如果当前事务存在,那么在嵌套的事务中执行。

        如果当前事务不存在,则表现跟REQUIRED一样。



    注解配置时如:@Transactional(propagation=Propagation.REQUIRED)

    7种事务举例子可看此篇博客 感觉不错: https://www.cnblogs.com/myseries/p/10800430.html

(二)事务隔离级别


         事务隔离级别                       脏读              不可重复读          幻读
读未提交(Read-Uncommitted)      是                            是                    是
不可重复读(Read-Committed)      否                           是                    是
可重复读(Repeatable-Read)              否                         否                    是
串行化(Serializable)                      否                           否                    否
   注解配置时如:@Transactional(isolation = Isolation.READ_UNCOMMITTED)

  Mysql 默认 可重复读   ---repeatable-read

  事务的并发问题

    1、脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据

    2、不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,

       对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致。

    3、幻读:系统管理员A将数据库中所有学生的成绩从具体分数改为ABCDE等级,

         但是系统管理员B就在这个时候插入了一条具体分数的记录,

        当系统管理员A改结束后发现还有一条记录没有改过来,就好像发生了幻觉一样,这就叫幻读。

    小结:不可重复读的和幻读很容易混淆,不可重复读侧重于修改,幻读侧重于新增或删除。

              解决不可重复读的问题只需锁住满足条件的行,解决幻读需要锁表

3月21

kendoGrid获取选中的行

13:43Web开发  From: 本站原创
                      var grid = $("#grid").kendoGrid({
                                            dataSource: dataSource,
                                            resizable: true,
                                            scrollable: true,
                                            navigatable: false,
                                            rownumber: true,
                                            selectable: 'multiple, rowbox',
                                            dataBound: function () {
                                                if (parent.autoResizeIframe) {
                                                    parent.autoResizeIframe('${RequestParameters.functionCode!}')
                                                }
                                            },
                                            columns: [

                                                {
                                                    field: "name",
                                                    title: '<@spring.message "物料名称"/>',
                                                    width: 80
                                                },
                                                {
                                                    field: "spc",
                                                    title: '<@spring.message "规格"/>',
                                                    width: 80
                                                },
                                                {
                                                    field: "num",
                                                    title: '<@spring.message "计划量"/>',
                                                    width: 60,
                                                    required: true
                                                },
                                                {
                                                    field: "unitCode",
                                                    title: '<@spring.message "单位"/>',
                                                    width: 60
                                                },
                                                {
                                                    field: "prdNoSup",
                                                    title: '<@spring.message "货号"/>',
                                                    width: 80
                                                },
                                                {
                                                    field: "planMoney",
                                                    title: "计划单价",
                                                    width: 80,
                                                    format: "{0:c}",
                                                },
                                                {
                                                    field: "startingPrice",
                                                    title: "起拍价",
                                                    width: 80,
                                                    format: "{0:c}",
                                                },
                                                {
                                                    field: "minPriceCut",
                                                    title: "最低降价幅度",
                                                    width: 120,
                                                    format: "{0:c}",
                                                },
                                                {
                                                    field: "productId",
                                                    title: '<@spring.message "ERP物料名称"/>',
                                                    width: 80,
                                                    hidden: true,
                                                },
                                                {
                                                    field: "purcNo",
                                                    title: 'ERP物料编码',
                                                    width: 120,
                                                    editor: function (container, options) {
                                                        $('<input name="' + options.field + '"/>')
                                                            .appendTo(container)
                                                            .kendoLov($.extend(<@lov"LOV_SELECT_PRODUCT"/>, {
                                                            textField: 'prdNo',
                                                            model: options.model,
                                                            select: function (e) {
                                                                options.model.set('purcNo', e.item.prdNo)
                                                                options.model.set('productId', e.item.productId)
                                                                options.model.set('proName', e.item.name)
                                                                options.model.set('proUnitCode', e.item.unitCode)
                                                                options.model.set('currentMoney', e.item.currentMoney)
                                                            }
                                                        }
                                                    ));
                                                    }
                                                },
                                                {
                                                    field: "proName",
                                                    title: '<@spring.message "ERP物料名称"/>',
                                                    width: 100
                                                },
                                                {
                                                    field: "proUnitCode",
                                                    title: '<@spring.message "ERP主单位"/>',
                                                    width: 120
                                                },
                                                {
                                                    field: "currentMoney",
                                                    title: '<@spring.message "最新价格"/>',
                                                    width: 80
                                                },
                                            ],
                                            editable: true
                                        }).data('kendoGrid');  
以下是获取当前选中行的方法,在网上找了很多个都不管用,还是使用以下方法新测可用
         var grid =$("#grid").data('kendoGrid');
            var items = grid.selectedDataItems();
3月14
项目中的一些依赖由于需要手动添加,很多时候都会创建一个私服仓库,比如nexus,将第三方jar添加到私服中,然后在pom中引用。刚来公司接手一个3年前的一个项目,该项目之前下过依赖,这些依赖本地依旧存在,如今重新导入该项目,由于没了私服,于是删去私服地址后,执行mvn package后项目会重新到配置的仓库中找这些依赖下载。

此时会报错"was cached in the local repository..." 或者 " Could not resolve dependencies for project"

解决方法,找到该依赖本地资源库位置,删去_remote.repositories文件 和 xx.lastUpdated文件
分页: 8/66 第一页 上页 3 4 5 6 7 8 9 10 11 12 下页 最后页 [ 显示模式: 摘要 | 列表 ]