首页 文章 新番
动漫 学习 生活 日记 书籍 服务器 Bing
  • Windows搭建Storm1.1.0环境

    *首先安装JDK,我这里使用的是Java8,安装后配置`PATH`、`JAVA_HOME`。*然后安装zookeeper,我也是安装版本是:Release3.4.10(stable),地址:[https://zookeeper.apache.org/releases.html](https://zookeeper.apache.org/releases.html),解压后配置`PATH`、`ZOOKEEPER_HOME`。启动时还需要复制`conf/zoo_sample.cfg`并改名为`zoo.cfg`。然后就可以启动成功了。*然后现在安装Storm,最新版本:`1.1.0`,地址:[http://storm.apache.org/downloads.html](http://storm.apache.org/downloads.html),解压后配置`PATH`、`STORM_PATH`。配置完成,启动命令:```bashstormnimbusstormsupervisorstormui```启动后就可以访问`http://location:8080`一般情况下会出现几个问题,为了解决问题我们最好是把`c...

    2017年07月18日 Storm
  • @Cacheable键值碰撞问题

    最近遇到一个非常奇怪的问题,就是一个使用了缓存的方法,获取到的一条数据出现了问题,之前并没有缓存过这组查询参数,但是并没有从数据库查询,而是直接从缓存中拿到了数据。但是这个方法从来没有改过,以前也没出现过问题。方法使用的是`@Cacheable`注解的,开始我以为是并发过高导致,但是看了日志发现并不是。于是我把一个小时内(缓存的有效时间)的调用这个方法的参数全部来执行了一遍这个方法,发现缓存的数据大小少了一个。于是我找了一下缓存的默认生成策略是`HashCodeCacheKeyGenerator`。于是用这个生成策略使用参数生成了`key`发现出现了重复的。问题就是它了。```javapublicstaticvoidmain(String[]args)throwsException{//ListCacheKeyGeneratorg=newListCacheKeyGenerator();//StringCacheKeyGeneratorg=newStringCacheKeyGenerator();HashCodeCacheKeyGeneratorg=newHashCodeCacheKeyGenerator();...

    2017年07月17日 @Cacheable Ehcache
  • HTTPClient重定向

    使用的HTTPClient版本4.5.2,默认使用的重定向策略是`DefaultRedirectStrategy`。如果是使用的`POST`,然后`301`重定向是不会执行重定向后的请求的,而是直接获取到`301`状态码。主要的代码:```javapublicbooleanisRedirected(finalHttpRequestrequest,finalHttpResponseresponse,finalHttpContextcontext)throwsProtocolException{Args.notNull(request,"HTTPrequest");Args.notNull(response,"HTTPresponse");finalintstatusCode=response.getStatusLine().getStatusCode();finalStringmethod=request.getRequestLine().getMethod();finalHeaderlocationHeader=response.getFirstHeader("location");switch(status...

    2017年06月23日 HTTPClient 重定向
  • vsftpd搭建ftp服务器

    今天使用vsftpd搭建ftp服务器发现在内网测试机没问题,但是外网测试的时候却不能访问。使用Windows的ftp访问的时候直接提示`500OOPS`,然后就没有了其他错误了。最后使用Linuxftplocalhost时提示:```500OOPS:cannotchangedirectory:/home/ftpLoginfailed.```网上都说是SELinux的问题,但是发现状态为`disable`。仔细看了后面参考文章,发现我的`home`的目录的权限是`700`,然后修改为`755`然后问题就解决了。>参考文章:[https://www.server110.com/vsftpd/201402/6312.html](https://www.server110.com/vsftpd/201402/6312.html)vsftpd搭建教程:[http://www.cnblogs.com/kluan/p/4821537.html](http://www.cnblogs.com/kluan/p/4821537.html)添加新用户步骤:*添加Linux用户:```bashuseradd-d/home/ft...

    2017年06月14日 Linux vsftpd ftp sftp
  • Java和C#使用DES加密结果不一致

    C#和Java使用DES加密有一些区别,主要就是加密模式。Java默认使用的是ECB,C#默认使用的是CBC。例如如下Java代码:```javaSecureRandomrandom=newSecureRandom();DESKeySpecdesKey=newDESKeySpec(password.getBytes());SecretKeyFactorykeyFactory=SecretKeyFactory.getInstance("DES");SecretKeysecurekey=keyFactory.generateSecret(desKey);Ciphercipher=Cipher.getInstance("DES");cipher.init(Cipher.ENCRYPT_MODE,securekey,random);returncipher.doFinal(data);```那么使用C#时需要这样设置:```c#DESCryptoServiceProviderdes=newDESCryptoServiceProvider();byte[]inputByteArray=Encoding.UTF8.Get...

    2017年06月09日 Java C# DES
  • 加密算法学习总结

    经常会使用一些加密算法,也不会太细节的讲解,主要终结一下。常用的MD5、SHA-1这些其实是一种散列算法,也叫HASH算法或者信息摘要算法。主要用来保证数据的完整性,也就是没有被修改,有时也经常用来给用户信息加密,主要是不可逆。数字签名是保证不可抵赖性和完整性,一般都是对信息摘要进行签名,而不是原始数据,这样性能比较高。常用的加密算法DES、RSA、AES等,加密算法分为对称加密和非对称加密,主要的却别就是公钥和私钥是否一样。数字证书:包含公钥等等信息,通过CA公钥验证证书签名判断是否有效数字证书。密钥:包含私钥公钥PKI/CA/RA/OCSP等等还有一个需要了解的分组密码,有ECB,CBC,CFB和OFB这几种算法模式。>参考文章和工具:[http://tool.chacuo.net/cryptrsapubkey](http://tool.chacuo.net/cryptrsapubkey)[http://www.iplaysoft.com/encrypt-arithmetic.html](http://www.iplaysoft.com/encrypt-arithmetic.html)[http:/...

    2017年06月02日 加密算法 RSA DES MD5
  • 阿里云负载均衡重定向时被加上端口

    服务器使用的Nginx,然后使用了阿里云的负载均衡后,发现重定向时却加上了Nginx的端口。浏览器访问:`https://www.acgist.com/music/index`正确的情况是重定向到:`https://www.acgist.com/music`然而却重定向到了:`http://www.acgist.com:8888/music`(Nginx对阿里云开放的端口:8888)原因很简单就是重定向时拿`host`错了,原来Nginx配置少了`host`这一行:```proxy_set_headerHost$host;```加上后完美解决。

    2017年05月27日 阿里云 重定向 Nginx 负载均衡
  • 下载文件时如何同时返回参数

    要在下载文件时同时传递参数给客户端,我之前想了两种方法:1.使用输出流先输出返回的参数,然后换行返回文件流。2.使用`header`返回参数。这里我使用第二种。Servlet代码:```javapackagecom.acgist.servlet;importjava.io.File;importjava.io.FileInputStream;importjava.io.IOException;importjava.util.HashMap;importjava.util.Map;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.tomcat.util.http.fileupload.IOUtils;@WebServlet(...

    2017年04月21日 Java 下载
  • Linux修改SSH端口

    昨天我把`SSH`的端口修改了,发现今天一个攻击的也没有了。Linux的`SSH`登陆端口是`22`,如果你不修改,每天都会收到非常多的攻击,其实很多攻击估计都是用的脚本,所以修改一下端口基本上就没有受到攻击了,当然除了有人故意攻击你。修改教程:1.修改`/etc/ssh/sshd_config`的`Port`为其他端口2.重启`ssh`:`servicesshdrestart`**当然比较重要的就是要记住防火墙设置,还有一个非常重要的就是一定要先测试一下能连接在关闭当前的`shell`窗口,否者哭都来不及**。

    2017年04月07日 Linux SSH
  • Linux安全增强

    记一下这两天搞的一些琐事。*防火墙屏蔽了`3306`端口*修改ssh的端口号,修改文件`/etc/ssh/sshd_config`的`Port`字段*修改了`Tomcat`的`JSESSIONID`的名称,其实我之前也好奇为什么我没有使用`JSP`后缀,百度云观测知道我使用的开发语言是`Java`,最后我才发现`cookie`里面的`name`为`JSESSIONID`,于是乎改了一下,第二天发现开发语言变成了未知:![百度云测](//static.acgist.com/resources/images/article/201704/14915343305851001.png)修改`JSESSIONID`的地址就是`tomcat/conf/service.xml`中`Context`节点`sessionCookieName`属性*使用`trimDirectiveWhitespaces`对`JS`中标签解析后的空行处理

    2017年04月07日 Linux 安全
  • Nginx错误

    首先我们来解决`last`和`break`的区别:```roothtml;indexindex.html;location/c/{rewrite.*/;}location/a/{rewrite.*/c/last;}location/b/{rewrite.*/c/break;}```访问`localhost/a/`时访问的是`html/index.html`访问`localhost/b/`时访问的是`html/c/index.html`好了,然后我们修改配置:```location/a/{rewrite.*/a/last;}```这种情况访问时,系统提示`500`错误,错误日志:```rewriteorinternalredirectioncyclewhileprocessing"/a/",client:127.0.0.1,server:localhost,request:"GET/a/HTTP/1.1",host:"localhost"```那么下面这个情况呢:```location/b/{rewrite.*/b/break;}```这个情况就比较复杂了第一种情况:路径`html/b/`不存在时,提示`404...

    2017年03月23日 Nginx last break
  • 错误日志

    错误日志输出时,尽量输出能够准确标记定位错误的信息,比如ID,错误内容,引发错误的类的属性值。因为本地测试时,只有你一个人产生的日志,日志量少容易排查。但是生产环境你可能就很难追踪到错误信息,因为错误看起来都是一样。

    2017年03月21日 错误日志
  • JSONObjectProxy

    `JSONObject`这个类使用`getString`方法时,如果没有`key`时,会提示`net.sf.json.JSONException:JSONObject["key"]notfound.`错误。所以这里写了一个代理程序,判断是否为空,代码如下:```javapackagecom.demo.json;importjava.math.BigDecimal;importnet.sf.json.JSONNull;importnet.sf.json.JSONObject;/***代理JSONObject对象*不能继承JSONObject,此对象为final*/publicclassJSONObjectProxy{privateJSONObjectjson;publicJSONObjectProxy(JSONObjectjson){if(json==null)thrownewIllegalArgumentException("参数错误");this.json=json;}publicStringgetString(Stringkey){if(json.containsKey(key)){Objectvalue...

    2017年03月14日 JSONObjectProxy
  • 测试

    最近感觉活的有点迷迷糊糊,也许是刚刚放完年假的关系。说到测试,我其实是一个非常不喜欢测试的人。也是最近经常出问题,所以这里也记录一下给自己一点警戒。修改代码前一定要先想清楚导致问题的原因,然后再修改。修改时要考虑到所有的因数,因为很多方法不止一个地方用到,其他的地方也会用到。修改后一定要测试,因为很多因素会导致出现问题。测试,不仅仅要测试成功,失败也很重要。反反复复,各种情况下考虑。还有就是以前出现过的问题,修复了,修改了相关代码最好也进行测试,防止旧病复发,所以最好是将测试框架进行自动化测试。

    2017年03月02日 测试
  • java.lang.NoSuchMethodError

    这个错误其实很明显,就是没有这个方法,一般情况可能是更新代码少了文件。但是今天遇到一个奇怪的事情,修改的文件都已经更新过了,但是依旧出现了这个问题,究竟为何?```java.lang.NoSuchMethodError:xxxx.xxxx.ClassName.select(ILjava/lang/String;)Lxxxx/xxxx/xxxxE```想了很久,我把全部代码放了一遍后发现没有问题了,想起了看过的一本书说过更新代码的一个陷阱就是有些方法修改后,引用方法的地方也会在编译的时候发生变化。如下代码:`A.java````javapublicclassA{publicstaticvoidmain(String[]args){inta=0;Bb=newB();b.say(a);}}````B.java````javapublicclassB{publicvoidsay(intinput){System.out.println("输入值:"+input);}}```编译运行:```bashE:\cert>javacA.javaE:\cert>javaA输入值:0```然后修改`B.java````...

    2017年02月27日 Java NoSuchMethodError
  • Maven项目JUnit报错

    今天一个项目出现一下debug信息:```2017-02-2315:22:36,175DEBUG[org.springframework.core.type.classreading.AnnotationAttributesReadingVisitor]-Failedtoclassloadtypewhilereadingannotationmetadata.Thisisanon-fatalerror,butcertainannotationmetadatamaybeunavailable.java.lang.ClassNotFoundException:org.junit.Testatorg.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1308)atorg.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1142)atorg.springframework.core.type....

    2017年02月23日 JUnit Maven Spring
  • Apache配置证书问题

    今天使用Apache配置SSL出现了一个问题,使用电脑浏览器访问显示了绿锁,但是在手机端访问时,微信访问不了,UC和QQ提示错误,最后发现原来是没有配置中继证书:`SSLCertificateChainFile`。

    2017年02月17日 Apache
  • EasyMock模拟HttpServletRequest进行JUnit测试

    使用JUnit测试的时候,HttpServletRequest需要进行模拟才可以,所以就用到了EasyMock,使用方法如下:```javapublicstaticvoidmain(String[]args)throwsUnsupportedEncodingException{StringqueryString="name=acgist&age=24";String[]queryStrings=queryString.split("&");intindex;Stringkey,value;Mapmap=newHashMap();HttpServletRequestrequest=EasyMock.createMock(HttpServletRequest.class);for(Stringparas:queryStrings){index=paras.indexOf("=");key=paras.substring(0,index);value=URLDecoder.decode(paras.substring(index+1),"utf-8");map.put(key,value);Easy...

    2017年02月14日 JUnit EasyMock HttpServletRequest
  • 作图工具-SmartArt

    之前看过一些漂亮的知识图谱,我一直在找是什么工具做的,今天才发现原来是Word里面的SmartArt。当然还有很多图形工具或者建模工具:Visio、PowerDesigner、RationalRose等在线的工具:百度脑图、ProcessOn等

    2017年02月09日 SmartArt 作图工具
  • 使用IP调用HTTPS的WebService问题

    错误信息:```Causedby:javax.net.ssl.SSLHandshakeException:java.security.cert.CertificateException:Nosubjectalternativenamespresentatsun.security.ssl.Alerts.getSSLException(Alerts.java:192)atsun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949)atsun.security.ssl.Handshaker.fatalSE(Handshaker.java:302)atsun.security.ssl.Handshaker.fatalSE(Handshaker.java:296)atsun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1509)atsun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.j...

    2017年02月08日 Java HTTPS WebService
1...15161718192021...31

关于 ACGIST

Copyright © 2013-2025 ACGIST.COM. All Rights Reserved.