- 浏览: 277316 次
- 性别:
- 来自: 北京
最新评论
-
gotosuzhou:
好的 谢谢分享
Spring 事务异常回滚 -
cd249745647:
哈哈
Spring MVC REST 例子 -
向日葵上的小蜜蜂:
代码都差不多贴出来了,为啥不直接提供下载呢
Spring MVC REST 例子 -
he3109006290:
我猜它应该有个算法,当出现长时间处理的情况的,它自动会启动另外 ...
netty 疑惑 -
yanghoho6:
很好, 学习了,
oracle基本的索引概念.doc
文章列表
BASE64 和Dom4j
- 博客分类:
- java
项目当中用到MD5做消息摘要,后通过BASE64转成字符串后再通过XML传输;
因为BASE64 有换行符和终结符 默认是\r\n 但是Dom4j在解析Dom的时候可能会把\r去掉,剩下\n
所以导致在做消息摘要验证时原始消息摘要默认后面是加\r\n但是dom解析后成了\n导致不匹配,现在解决方案是在比较之前把md5后的字符包含\r\n的全部去掉。
测试情况是客户端100个线程同时同时请求10000次,服务器端jetty 服务器使用默认配置,java自带服务器 httpServer使用HttpServer.create(new InetSocketAddress(8080), 100)
测试结果是速度大致相当,但jetty当请求数量到了100000次后速度明显降低 而且导致Exception in thread "qtp4565111-38" java.lang.OutOfMemoryError: Java heap space异常,而java内置服务器则很稳定
Jetty HttpClent 异常
- 博客分类:
- java
使用Jetty HttpClent做异步请求,结果发现这个东东真是不如Apache的HttpClient和java内部HttpURLConnection
首先是性能问题太差,用默认配置或手动的20个并发,25个线程的情况,性能都比HttpURLConnection差很多
当请求数量过大时,出现java.lang.OutOfMemoryError: unable to create new native thread
而且偶尔会出现url解析异常
看来用这个的前千万要慎重啊
关于Hibernate延迟加载
- 博客分类:
- java
package com.lottery.test;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.pers ...
Jetty内嵌Http服务器
- 博客分类:
- java
本例只是以HttpServlet方式实现,更多的方式可以通过http://wiki.eclipse.org/Jetty/Tutorial/Embedding_Jetty查看
注意里面的HttpClient为eclipse的HttpClient,非apache的HttpClient
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
...
java concurrent包理解
- 博客分类:
- java
Java并发处理
<!--[if !supportLists]-->1、 <!--[endif]-->简介
了解java并发之前先了解java内存模型,java内存有主内存和工作内存,比有个对象Person,有实例变量name,那么Person的实例中name属性就是在主内存中,如果多个线程同时操作Person,那么每个线程会有Person属性name的副本放在每个线程的工作内存中,每个工作内存修改后会同步到主内存中,但是这里就有问题:一致性问题和可见性问题,导致数据丢失或脏数据。
为了解决这个问题,引入了同步机制synchronized,是多个线程同时只有 ...
package com.benx.test;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
...
万恶的javaeye,编辑器能不能优化下,每次修改样式都变形了。
FileInputStream
属于数据源
BufferedInputStream
属于FileInputStream的一个装饰
BufferedInputStream 有个内部缓冲区当read时会先把缓冲区填满,然后下次读取是直接从缓冲区读取。当读取的位置大于缓冲区时会再一次加载缓冲区。
read()和read(byte[] buf,
int off, int len)处理方式一样,区别在于后者一次返回多个数据,但是同样都是先放入缓冲区,然后再读取。
private void
下面的代码是SpringSide的Hibernate简单封装,使用这个封装Dao层基本只需要声明,而不需要写任何代码(当然如果有复杂的SQl还是需要手写方法),对于查询的逻辑都可以放置Service.
package org.springside.modules.orm.hibernate;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import org.hibernate.Criteria;
...
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
ServerSocket se ...
#根配置,输出Debug级别以上,包含appender为stdout和logfile
log4j.rootLogger=DEBUG, stdout, logfile
#配置目录com.MC只打印ERROR级别以上信息
log4j.category.com.MC=ERROR
#控制台输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layo ...
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
public class Test {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
Stri ...
-Xms256M -Xmx1024M -XX:MaxPermSize=128M -XX:+HeapDumpOnOutOfMemoryError
本文将使用keytool和openssl工具来自己生成证书,包含CA,私钥,jks证书管理,配置tomcat的双向认证
1、安装openssl
# tar –zxvf openssl
# cd openssl
# ./config
--prefix=/usr/local/openssl
# make
# make install
2、生成CA证书和私钥
本文转自(http://wgchwgch.iteye.com/blog/243382)
cer后缀的证书文件有两种编码-->DER二进制编码或者BASE64编码(也就是.pem) p7b一般是证书链,里面包括1到多个证书 pfx是指以pkcs#12格式存储的证书和相应私钥。 在Security编程中,有几种典型的密码交换信息文件格式: DER-encoded certificate: .cer, .crt PEM-encoded message: .pem PKCS#12 Personal Information Exchange: .pfx, .p12