- 浏览: 67908 次
- 性别:
- 来自: 杭州
最新评论
-
120076566:
这个源码工程不对
axis2学习——开发自定义的axis2服务 -
greg0827:
enjiex威武!
maven创建web project -
chenshantie:
刚刚遇到,因为eclipse在非正常情况下被关闭,所以再次重启 ...
ubuntu上eclipse停止在loading workbench界面 -
mj:
真是太谢谢了
ubuntu上eclipse停止在loading workbench界面 -
路人昭:
英杰翻译的好东东~不错的java故事~
Memcached历险记
文章列表
Shell 递归遍历文件夹
- 博客分类:
- Shell
写这段程序纯属意外,第一次弄Shell,网上搜了一堆才写出来一段准备把maven的repo下的非Sources的jar文件加入到CLASSPATH中。当然最后失败了,因为这个文件夹太大了,很长时间遍历不完,但还好留下了这段遍历文件夹并根据文件后缀名判断文件类型的代码。
CLASSPATH=.
## 把文件路径加入到CLASSPATH中
function append_path(){
file_suffix=`echo $1 | awk '{print substr($0,length($0)-2)}'`
source_suffix=`echo $1 | ...
前一段有应用中有个场景,是远程调用时,需要给对方传入xml格式的数据。一般生成xml的话,或者使用DOM4J等操作xml的第三方软件包,一个节点一个节点的生成xml格式数据;亦或者高级一些,使用反射,动态生成节点及数据。
上面第一种方式因为在程序中手动控制节点,所以可以生成较为复杂的结构;但也存在相应的问题,及数据与格式绑定太死,若需要生成多个xml数据,则可能会重复很种实现。上述的第二种方式刚好解决了上面说的重复实现的缺点,但最好的使用场景是xml中数据的数据结构刚好和对象、属性及其嵌套对象之间一致的话,实现起来较为方便。当然这并不是说不能用来生成较复杂的xml格式,但可能要做较多的工作。
除 ...
用maven进行管理非常方便,但在创建web project时,会遇到一点小小的问题,让新学者摸不着头脑。首先创建web project的命令如下:
mvn archetype:generate -DgroupId=com.nuc.mytest -DartifactId=mytest -DarchetypeArtifactId=maven-artifactId-webapp
创建后的目录结构如下:
mytest
|pom.xml
|src
|main
|resources
|webapp
由目录结构你会发现,在main目录下少了常见的java目录 ...
今天用以下面maven命令创建项目时,
mvn archetype:create -DgroupId=com.nuc.test -DartifactId=mytest
报了以下的一个错误:
Reason: Error getting POM for 'org.apache.maven.plugins:maven-archetype-plugin' from the repository: Unable to read local copy of metadata: Cannot read metadata from '/home/enjiex/repo/org/apache/maven/plug ...
点击查看英文原文
两个勇敢的冒险者,程序员和系统管理员,开始了一段旅程。他们一起搭建一个基于web server和database的网站。网上的用户与web server交互,并请求获得他们所需要的页面。web server请求databases以获得数据来构建页面。在这个项目中,程序员进行编码,而系统管理员负责web server 和database的安装与部署。
某天,管理员发现他们的数据库系统快要跨掉了,几乎也不能负载得起web server的请求了。程序员咨询起管理员该怎么办,这时管理员想起了一个叫memcached的项目,它曾真真切切的使用在livejournal项目中,并取得了很 ...
前面说了关于axis2服务的开发,今天也说说关于axis2客户端的开发。因为axis2以AXIOM为通信模型,所以基本的客户端的开发也是基于这个完成的,也就是说开发axis2的客户端也需要引入axiom-dom包,同时axis2的核心包也是必不可少的。因为客户端在发送请求过程中,会涉及到编、解码,数据传输、本地化等一系列操作,因此需要较多的包依赖。还好我们可以在开放测试的时候,通过运行根据抛出的异常判断还缺少哪些jar包。我这里列出了在简单使用时候的时候用到的jar包,如下pom文件所示:
<project xmlns="http://maven.apache.org/POM/4 ...
经过前面两部分的学习,我们对axis2的安装及axis2的消息处理有了一定的了解,今天我开始着手定义自己的axis2服务,并打包成axis2可识别的.aar服务包并部署到axis2服务器中,以提供给axis2 client的调用。axis2 client的开发会在后面介绍。
axis2提供了很多方式来创建服务,例如:
创建一个服务并从通过脚本进行打包。通过这种方式,你把你的服务类构建到特定的可读取的AXIOM OMElement对象中,然后创建services.xml文件,最后一并打包成可部署的.aar文件
把POJO对象作为服务部署
通过WSDL生成服务。你可以通过WSDL生成client ...
上一篇文章中写了关于axis2服务器的安装及启动以及axis2管理工具的简单介绍,现在我们已经对axis2有了简单的认识。下面我会一步步揭开axis2的面纱,并开始构建一个自己的axis2服务。
为了更好的理解axis2,我们首先看web services的消息生命周期的概念。通常,消息的生命周期如下图:
消息发送者应用创建原始的SOAP消息——由相应的消息头和消息体组成的xml文件,一旦消息准备完毕,就会把这些消息通过HTTP、JMS等方式发送出去。如果axis2加载了其他的WS-*模块,那么在发送之前会使用这些模块对消息做相应的处理。消息达到接收者一方,会被接收者的监听端口所接收,并对 ...
今天稍看了下关于axis2的介绍,官方上说Apache Axis2是Apache提供的一款第三方Web Services引擎,与其前身Apache Axis相比,axis2更加高效、模块化,也更面向于XML的组织。经过精心的设计,axis2提供了更加便利的模块添加功能。
Apache axis是apache提供的基于java的,同时支持服务端和客户端的的web service引擎。提供了完整的对象模型和模块化的架构,所以能很方便的添加功能和支持新的web services相关的规范。
通过axis2,开发者可以简单地完成以下功能:
发送SOAP消息
接收并处理SOAP消息
通过普通的 ...
经常会在linux上遇到一些新的命令,然后就会到网上找,再然后就忘记了。linux命令本身很简单,却都会有很多选项,因为选项太过于复杂,而把相应的命令也给掩盖了。这里只记录linux下用到的命令,很简短,却很使用。更详细的信息可能通过man 命令名来查看,例:man mv。
1. apt-get
在linux上安装软件是经常遇到的情况,初始linux的新同学可能会搞不懂软件的安装及配置,开始我也搞不懂。不过最简单的安装方式就是apt-get系列了,在终端下输入apt-get,然后连续按两次tab键会列出该系列下的可用命令,常用的如下:
apt-get install 软件名,安装 ...
今天在ubuntu的eclipse上和往常一样写代码、调试,可突然eclipse莫名奇妙的退出了。然后重启,可eclipse就处在loading workbench界面黑了,不动了,死了!然后重启电脑,再启动eclipse,还是这样。网上也没找到原因,本想着重新解压一把eclipse,后来想着把workspace删除掉再试试看,然后就删除了workspace工作目录(当然我的项目代码肯定不在这里)。再启动eclipse,可以正常启动了。
遇到此问题的简单的解决方案:删除工作目录workspace。
至于错误原因,我想可能是写入到工作目录中的一些设置信息出错了,导致加载失败吧。
简单来说,Cookie是web client与web server传递信息的一种信息单元,其通过Http header进行传递,起到一定的数据缓存或身份识别的作用。下面是java servlet的相关api对Cookie的说明。
1. cookie的创建及属性
创建一个 ...
Java提供了事件机制,在使用spring的时候,我们可以把普通的java事件操作定义为bean集成到bean容器中,但还有一种更方便的方式,即使用spring已集成的事件支持。
在使用Spring的事件支持时,我们需要关注以下几个对象:
1. ApplicationEvent:继承自EventObject,同时是spring的application中事件的父类,需要被自定义的事件继承。
2. ApplicationListener:继承自EventListener,spring的application中的监听器必须实现的接口,需要被自定义的监听器实现其onApplica ...
事件监听器机制是观察者模式的一种,通过把事件源和事件处理流程以监听器的方法隔离开来,减小了主流程与被触发事件的执行流程间的耦合,便于代码的维护和对事件处理流程的扩展。
在事件监听机制中,涉及到三个角色:事件、发布者和监听器
事件:在事件源和事件监听器之间传递信息的对象实体。
发布者:在事件发生后,负责把事件发布到监听者的对象。
监听者:监听事件,并进行事件处理或转发的对象。
Java中提供了事件监听器实现的框架,使用Java中的事件监听器,需要熟悉以下几个类或接口:
1. EventObject:事件的基类,在J ...
昨天在ubuntu10.10上安装了apache,为了在下次重装系统时不至于东拔西找,这里记录下来大致的过程。
1. 安装
因为ubuntu提供了强大的apt-get install,所以我的安装过程就是以apt-get的方式完成的。这种安全过程对于新手来说比较方便 ...