- 浏览: 40999 次
- 性别:
- 来自: 北京
最新评论
文章列表
问题描述
初步搭建起springmvc时候使用@responseBody注解控制springMvc返回json格式数据的时候会发现服务端执行没异常,但是在浏览器端显示406的错误,这个错误是因为服务端给浏览器返回数据的时候没有被浏览器正确的解析。
解决思路
一般是控制response对象的header属性可以解决。springMVC可以使用annotation-driven标签来解决这个问题,就是配置<mvc:annotation-driven>,记得在配置这个之前要引入mvcxsd的命名空间,不然spring无法正确的解析这个标签,步骤如下。
1、首先在application ...
问题现象:
dubbo消费端调用服务端的时候,服务端没有错误日志所有调用是成功的,但是消费端却报错,这种错误出现频率不高。
原因:
dubbo客户端调用服务端是有一个invoke的过程,invoke过程中有许多代理类和自动生成的类为客户端屏蔽了很多调用细节的代码,比如简历sokect连接,反序列化tcp消息。这个过程中的错误一般不会遇到,遇到后就比较难解决。
我们遇到这个错误是因为服务端团队使用json-lib这个jar中的类传递数据,它间接引用的jar包版本和我们内部引用的版本不一致。这就导致在invoke过程中服务端序列化的数据没办法正确的反序列化为json-lib对象(个别数据比较个性 ...
概述:
前端时间看了一下dubbo源码被它使用的基于SPI(service provider interface)开发模式所吸引,这种方式组织的程序可以方便dubbo使用者自己扩展和实现自己的插件。
废话不多说了,讲代码吧。
开发过dubbo过滤器的同学应该很熟悉这种配置,在“classpath/services/接口全名”有一个文件用于定义该接口的所有实现类。并且在配置文件中加入自己配置的名字就可以用了。
这里我模仿这种方式使用反射机制创建了这些服务实现,并供系统通过名字定位需要使用的服务具体实现。没什么太难的东西大家看看就知道了。
ExtensionServiceLoader工具类的实 ...
javassi实现t动态代理模式
- 博客分类:
- 编程
最近研究了一下javassist框架,目前我对它的理解是它是一个动态创建类的框架。作为自己的学习的阶段成果使用它模拟了一个jdk动态代理的实现,在这里和大家分享一下。其实这反射的编程比想象中的麻烦一点的,期间遇到很多不好解决的问题放到javassist就不能执行,还好自己还是坚持完成了。如果我的实现方式有可优化或者漏洞欢迎大家指出。
主要实现类
MyProxy:提供一个静态方法创建代理对象,主要代码都在这里。整理思路是使用它动态的创建一个类然后使用MyInvocationHandler的实现调用业务接口实现类的具体方法,这样就完成了动态代理一个类的基本操作;
MyInvocationHandl ...
以下两个建表语句的效果是一样的:
以下是代码片段:
CREATE TABLE `test` (
`t1` TIMESTAMP NOT NULL ,
`ww` VARCHAR( 5 ) NOT NULL
) ENGINE = MYISAM
CREATE TABLE `test` (
`t1` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`ww` varchar(5) NOT NULL
) ENGINE=MyISAM ;
以下是代码片段:
自动初始化和更新:
t ...
今天试着做了一下使用maven生成doc文档,这个功能开始还是觉得很简单的以为自己几小时内能搞定,但是遇到了一个诡异的问题花了我将近多半天时间才解决。在这里记录一下方便遇到同类问题的人参考。
操作步骤
使用maven生成doc 正常情况下还是很简单的在pom里面配置一个javadoc的插件,然后可以在指定的maven寿命周期上绑定插件的配置如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&q ...
环境:
系统:windows7
VMware版本:8.8
虚拟机:是用同一版本的vmware创建的虚拟机
背景:
最近win7系统偶尔就会卡死,感觉是硬盘的问题。因为每次卡死硬盘灯都不闪了,就买了块SSD重装了一下系统。之前备份了我的虚拟机,想在系统装好后就不用重新搭建hadoop集群了。
打开/启动虚拟机都正常,就是网络这块不正常。虚拟机网络不能正常用了,解决方法如下:
我是用的是主机共享ip的方式,这样简单配置虚拟机和主机都可以上网了。
我遇到的问题是虚拟网卡网段和之前虚拟机设置的网段不对。重新设置一下虚拟网卡网段就可以了,步骤如下:
打开edit ->Vittual Network ...
今天安装了一下scala2.8.1final版本,安装完毕以后自觉地去配置环境变量,当我看的时候环境变量已经存在了。然后就打开cmd运行scala,被提示找不到scala命令。
遇到这种情况在命令行设置环境变量,就可以解决这个问题。
例如:set PATH=%SCALA_HOME%\bin;
原来一直在想要实现可伸缩WEB应用首个问题就是要解决登录状态的存储方式。经过查阅资料得出的结论就是将登录名通过加密写会到客户端cookie,然后验证是否登录就从客户端获取cookie解密然后将这个key与内存服务器中存放的登 ...
今天同事问了一个redis的问题,主要就是出现错误之后就把所有的本次操作添加的key删除掉。当时以为nosql数据库都不提供事务方面的机制呢,后来上网搜了一下还是找到解决方案了。代码实例如下。
public static void transactionDemo() {
Jedis jedis = new Jedis(host,port);
Transaction transaction = jedis.multi();
transaction.set("tx1", "45d方dfddfdf"); ...
错误代码:
INSERT comand denied to user 'uname'@'host' for table 'xxx'。
问题解释:
我们的问题是字段和插入语句不匹配。报错报的有点令人费解,gbase还是需要把错误信息显示的不要这么蛋疼为好。还有一个主意点就是这里显示的用户不是你配置的jdbc用户而是你的应用所在服务器的登录名和密码(刚开始以为是jdbc用户,还一度检查配置文件是不是配错了)。
在实施过程中发现java类库FTPClient下载的zip解压就报文件已经损坏,修改如下地方就可以了。
client.setFileType( FTP.BINARY_FILE_TYPE);
FTPClient client = null;
client = new FTPClient();
//连接ftp
client.connect(address, StringUtils.isEmpty(port) ? 21 : Integer.valueOf(port));
...
zookeeper笔记
- 博客分类:
- 编程
这个笔记是2013年初写的,当时学习solr发现solr使用了zookeeper,自己也觉得zookeeper很值得学习就初步的学习了一下。后来文档丢了好不容易找到了就上传上来吧;1作为自己备份、2希望可以帮助到想要学习zk的同学。具体见附件,最近打算深入学习一下,写点典型应用场景的例子。
待续......
工作中在linux上Maven打包代码遇到一些问题这里记录一下。
先说明一下情况:
我配合做代码检查的同事把我们的代码在他们的服务器可以正常的编译打包,第一次打包通过了但是由于代码没及时更新报语法错误原因是缺少一个方法。后来我就更新代码,然后重新打包这次问题就换了(只有两个项目报错,其他项目相同代码的地方都没错)。如下:
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.923s
[INFO] ...
错误现象:
在win7上安装过jdk1.7之后,然后把环境变量切换回jdk1.6之后,在命令行运行java -version依然显示jdk1.7。
解决办法:
原因是jdk1.7安装时候在C:\Windows\System32目录下创建了java.exe、javaw.exe、javaws.exe,将这几个文件删除就可以了。
C:\Users\qihuiyong>java -version
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java Hot ...