首页 文章 新番
动漫 学习 生活 日记 书籍 服务器 Bing
  • Java创建自定义运行时映像

    使用`jlink`创建一个运行时的映像,可以让运行环境最小化。使用命令:```jlink-v--module-pathlib;"D:\ProgramFiles\Java\jdk-10\jmods"--launcherrun=com.modules--add-modulescom.modules--outputtest```在使用JDK9的时候,没有问题,但是换到JDK10的时候就出现以下错误:```提供方:java.baseprovidesjava.nio.file.spi.FileSystemProviderusedbyjava.base错误:java.lang.IllegalArgumentException```😭原因是环境变量里面配置的JDK路径是JDK9的,所以就出现了上面的错误。>jimage学习:[http://www.cnblogs.com/IcanFixIt/p/7110790.html](http://www.cnblogs.com/IcanFixIt/p/7110790.html)

    2018年04月09日 Java jlink jimage
  • Spring Boot 2.0安全配置

    升级2.0以后一些配置需要修改,下面是一些安全方面的配置:```#安全配置#management.security.enabled=true#配置用户#spring.security.user.name=user#spring.security.user.password=user#spring.security.user.roles=USER#manager端口management.server.port=9999#manager权限角色#management.security.roles=ADMIN#manager的上下文management.server.servlet.context-path=/admin#公开端点management.endpoints.web.exposure.include=*#隐藏端点management.endpoints.web.exposure.exclude=env```添加用户和角色:*配置USER角色,包含一个用户名为user,密码为user的用户。*配置ADMIN角色,包含一个用户名为admin,密码为admin的用户。```java@BeanpublicInM...

    2018年04月04日 Sprint Boot 安全 security
  • Spring Boot配置加载

    SpringBoot默认加载的是`application.properties`和`application.yml`,如果两个配置同时存在时,默认使用会使用`properties`的配置替换`yml`,可以理解为先加载`yml`,然后加载`properties`进行替换。如果配置了`spring.profiles.active`属性时,还会加载`application-{profiles}.properties`或`application-{profiles}.yml`。上面文件加载的顺序是:`application.yml``application-{profiles}.yml``application.properties``application-{profiles}.properties`,后面的配置会替换前面的配置。##自定义配置###自定义properties```email.port=22email.name=email-nameemail.user.names=user-namesemail-tencent.port=tencent-22email-tencent.name=email-ten...

    2018年04月04日 Spring Spring Boot
  • Nginx+Tomcat正确获取客户端请求地址

    如果使用的是HTTP协议,直接使用如下配置,即可获取到客户端请求地址和IP信息:```proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;```但是如果使用了Nginx使用了HTTPS协议,但是反向代理时使用的是HTTP协议,那么上面的代码就不能获取到正确的协议。Nginx还需要添加如下配置:```proxy_set_headerX-Forwarded-Proto$scheme;```然后Tomcat的Engine下添加如下配置:``````这样就能正确获取到协议信息了。这里还需要说明一点,上面配置均需要配置到`location`中方能有效,之前一直配置在`server`模块内是无效的。>参考文章:[http://feitianbenyue.iteye.com/blog/2056357](http://feitianbenyue.iteye.com/blog/2056357)如果是SpringBoot内嵌的Tomc...

    2018年04月03日 Nginx Tomcat Spring Boot
  • Tomcat无法读取手动修改资源文件

    在Tomcat下面手动修改资源文件,发现使用`getResourceAsStream`重新读取配置并没有被修改。然后看了一下源码发现,Tomcat对资源文件进行了缓存:```java//(0)Checkforacachedcopyofthisresourcestream=findLoadedResource(name);if(stream!=null){if(log.isDebugEnabled())log.debug("-->Returningstreamfromcache");return(stream);}```所以导致使用`SuccessCodeConfig.class.getResourceAsStream("/successCode.properties");`读取配置时不能读取到修改的内容。所以应该修改为:```javanewFileInputStream(SuccessCodeConfig.class.getResource("/successCode.properties").getFile());```

    2018年04月02日 Tomcat Java
  • box-sizing

    经常发现`select`和`input`设置的属性一样但是发现两者的实际显示效果不一致,这是因为`box-sizing`属性导致的。>具体参考:[http://www.w3school.com.cn/cssref/pr_box-sizing.asp](http://www.w3school.com.cn/cssref/pr_box-sizing.asp)

    2017年12月26日 box-sizing CSS
  • JPA自动生成设置外键名称

    使用JPA的`@ManyToOne`时,生成了外键,而且用的`generateDdl`配置自动生成。如果想修改外键名称,可以使用`@ForeignKey`注解去修改外键名称。

    2017年11月15日 JPA Hibernate
  • Postman将JSON字符串作为表单数据提交

    使用Postman模拟请求,但是发现`body`的`form-data`里面,放入JSON字符串,发送时并不能自动拆分为表单数据。我们选择`body`后面有一个`key-valueedit`的选项,点击后进入以下界面:![Postman](//static.acgist.com/resources/images/article/201711/15096111534951001.png)然后直接粘贴复制的`JSON`字符串就可以自动将你的`JSON`字符串变为表单数据了。

    2017年11月02日 Postman JSON form-data
  • Jersey使用

    最近在看《JavaRESTfulWebService实战》,以前都是用的RESTEasy,Maven配置:```xmlorg.jboss.resteasyresteasy-jaxb-provider3.0.13.Finalorg.jboss.resteasyresteasy-jaxrs3.0.13.Finalorg.jboss.resteasyresteasy-jackson2-provider3.0.13.Finalorg.jboss.resteasyresteasy-client3.0.13.Final```但是使用Jersey(版本:2.x)时,发现并不是那么顺利。这里整理一下,先贴完整的Maven配置:```xmlorg.glassfish.jersey.corejersey-client2.26org.glassfish.jersey.containersjersey-container-servlet2.26org.glassfish.jersey.injectjersey-hk22.26org.glassfish.jersey.bundlesjaxrs-ri2.4com.fasterxml.ja...

    2017年10月27日 Jersey RESTful
  • Spring AOP没有进入切点

    今天使用Spring的AOP做了一个方法的拦截验证,但是发现怎么都进入不了切点。```xml```最后网上找到了一个帖子,发现了问题,这段配置直接放在`applicationContext.xml`无效,放到SpringMVC的配置中去就OK了。>帖子链接(七楼):[http://bbs.csdn.net/topics/391049202](http://bbs.csdn.net/topics/391049202)

    2017年10月20日 Spring AOP
  • JSON数据对比

    做了一个JSON数据比较的页面,方便工作中的需要,暂时只支持纯文本比较。DEMO地址:[http://www.acgist.com/demo/json/index.html](http://www.acgist.com/demo/json/index.html)

    2017年09月15日 JSON 比较
  • Eclipse插件pydev

    最近重拾Python,安装pydev插件时,发现[http://www.pydev.org/updates](http://www.pydev.org/updates)这个地址没有效了。放到浏览器访问了一下,发现失效了,建议跳转新连接[https://dl.bintray.com/fabioz/pydev/5.9.2/](https://dl.bintray.com/fabioz/pydev/5.9.2/)就OK了。

    2017年09月07日 Eclipse pydev 插件
  • HTTP基本认证

    以前就挺好奇路由器认证时的弹窗是怎么做的。今天看了HTTP权威指南的HTTP基本认证基本上了解了。这里放一个JSP的示例,更多资料可以看HTTP权威指南的基本认证机制章节,或者参考后面的文章。```java<%@pageimport="org.apache.http.HttpStatus"%><%@pageimport="org.apache.http.HttpHeaders"%><%@pageimport="org.apache.commons.codec.binary.Base64"%><%@pageimport="org.jboss.netty.handler.codec.base64.Base64Decoder"%><%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><%booleanauth=false;Stringpswd=request.getHeader(HttpHeaders.AUTHORIZATION);if(psw...

    2017年09月06日 HTTP 基本认证
  • Ehcache缓存延迟

    最近用了一下Ehcache的同步,发现存在一些问题,有时候延迟比较严重。导致几台服务器之间的内容不一致。如果要解决这个问题,其实方法也很简单,就是不要使用异步线程去同步信息。只需要将`replicateAsynchronously`设置为`false`即可解决。

    2017年08月21日 Ehcache 缓存 延迟
  • 代码重构

    代码重构真的要非常的小心,小心仔细,特别是对一些特殊情况的处理,还有对旧逻辑的兼容。愁啊愁白了头啊。

    2017年07月31日 代码重构
  • 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
1...15161718192021...32

关于 ACGIST

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