用Eclipse3.5+axis2搭建web services 开发和发布环境

xtykc 07月 14th, 2010

常用的Webservices 框架有axis2XfireApache CXF等,我们选择了比较简单的axis2。axis2目前最新的版本是1.5.1,
不仅支持SOAP 1.1和SOAP 1.2,还支持 REST。
选择axis2的一个重要理由是它有两个非常管用的Eclipse插件(Axis Eclipse Plug-in):代码生成工具(Axis2 code ge
nerator)和服务打包工具(Axis2 service archiver),前者在生成客户端测试代码时用,后者在打包发布时非常好用。
曾经尝试用MyEclipse7.0+axis2,但安装好的插件却怎么也不好使,遂放弃。
1.下载并安装Eclipse3.5
将下载到的Eclipse解压缩到一个目录,命名为“eclipse”或任何其他名称,打开该目录,找到一个名为eclipse.exe的可执行
文件,双击它,即可运行eclipse开发环境,eclipse是无需安装的,相比于MyEclipse,这点真是太重要了。
2.下载并安装Axis Eclipse Plug-in
在搜索引擎上输入“axis2 eclipse plug-in”这几个关键词,即可找到插件的下载地址,选取一个较为成熟稳定的版本下载,
我选择了1.3。将得到的两个压缩文件解压缩,得到Axis2_Codegen_Wizard_1.3.0和Axis2_Service_Archiver_1.3.0两个
文件夹,放到eclipse\plugins目录下,进入D:\eclipse\links目录,如果没有links目录就自己新建一个,在links目录下
新建link文档命名为”axis-eclipse-plugin.link”,编辑该文档,写上path=D:\eclipse\plugins,保存,好了,重启
eclipse,在菜单上依次点击file-new-other,如果看到以下画面,恭喜你,插件安装成功了!

3.下载Axis2并在Tomcat上部署Axis2
这里的axis2即是web services的开发包和框架(或者说容器)。在搜索引擎上输入“axis2 下载”,找到axis2的下载页面,
选择一个和上面安装的插件相同的版本下载,我的是1.3,下载到axis2-1.3-bin.zip和axis2-1.3-war.zip这两个压缩文
件,bin.zip是开发包,解压缩后得到一大堆jar文件,war.zip是部署在tomcat上的web services 容器,解压缩后得到
axis2.war,将axis2.war文件包放在tomcat的webapps下,重启tomcat,tomcat的webapps下会出现一个axis2的文件夹,在浏
览器上输入http://localhost:8080/axis,如果看到以下界面,就说明这个容器部署好了。

4.业务代码打包和发布
在eclipse上建一个工程,在Build Path里面导入上述bin.zip解压缩后得到的jar包,编写好业务代码和web services接
口,接口里面应该有一些public的方法以供调用。代码写好了之后,可以打包发布了,菜单file-new-other-Axis2
service archiver,出现如下界面,正确选择你的web services接口编译后的.class文件所在的目录,应该是最上层的
package所在的根目录,不包括package,如:D:\workspace\syncData\WebRoot\WEB-INF\classes。

然后一路next下去直到如下图所示:

在class name栏填写好类名和它的package名如:syncdata.syncShLibMyLibResult(syncdata为package名,syncShLibMyLibResult为类名),点击load,即可看到该类所有的public方法,选择好需要发布的方法,再点next,得到如下图所示的界面:

上图中output file location的地址(D:\Tomcat\webapps\axis2\WEB-INF\services)即为web services接口的发布地址,填写好后点击finish,弹出成功窗口,同时会在D:\Tomcat\webapps\axis2\WEB-INF\services目录下发现打包好的.aar文件,axis2默认支持热发布,这时该接口以及发布完成。也可以任意指定output file location的地址,只要发布时将得到的.aar文件拷贝到D:\Tomcat\webapps\axis2\WEB-INF\services下即可。在浏览器上输入http://localhost:8080/axis2/services/listServices,即可看到已经发布成功的web services接口和方法,如有发布不成功的情况,也可以在此页面上看到。

注意:当重新发布相同的web services接口时,需要删除tomcat/webapps下的整个axis2目录,将之前下载到的axis2.war包重新部署,再重新打包发布web services接口,即使将axis2的配置参数改为支持热更新也不行,尚不知何故。

开源OPAC2.O资料

xtykc 11月 17th, 2009

从收集到的资料来看,2009年,OPAC2.0好像集体失语了。难道和LIB2.0一样,已经是明日黄花了吗?还是大家都埋头苦干去了?

1.scriblio:

Posted February 25, 2009 by Casey Bisson Scriblio 2.7 Released
05.09.2008 Classic Resplendent 2008數位典藏國際會議心得—”The Social Life of Archives”
02.27.2008 Matt Mullenweg:Scriblio for Libraries
05.10.2008 编目精灵:香港科技大学的Scriblio实验目录
10.08.2007 钱涂无量: Scriblio:基于Wordpress的图书馆应用
2007 黄田青:Scriblio 给我们的启示
December 11, 2007 by Casey Bisson Scriblio 2.3 v4 Released
February 9, 2006 by Casey Bisson WPopac: An OPAC 2.0 Testbed
  • 例子:

Lamson Library of Plymouth state University普利茅斯州立大学

Cook Memorial Library

Byond Brown Paper(图片档案馆

Boston University School of Theology’s History of Missionlogy collection,

香港科技大学图书馆

2.VuFind

  • 最新消息(2009.9.30):

National Library of Ireland, University of Michigan, Wake Forest, Colorado State, York University, London School of Economics, University of Georgia的VuFind上线了!

October 16, 2008,1.0版发布

  • 中文博客报道:
12.15.2008编目精灵:耶鲁大学的VuFind使用调查
12.11.2008编目精灵:再看国外流行的开源软件──第三届梅隆技术协作奖
09.15.2007高山流水: VuFind
07.23.2007编目精灵:开源OPAC发布:VuFind

耶鲁大学

National Library of Australia

Villanova University Library

3. sopac

  • 国外报道:

《图书馆杂志》:Darien Library’s Open Source SOPAC 2.0 Emphasizes Patron Content / Josh Hadro. Library Journal, 8/29/2008
Talis的访谈:Panlibus Blog: John Blyberg Talks with Talis about SOPAC 2.0 (1st September 2008)

  • 中文博客报道(部分由编目精灵整理):
01.22.09 数图研究笔记:2008图林十大技术进展(下)
30.09.08 编目精灵:开源OPAC前端软件SOPAC 2.0下载
(2008-09-02)冰城节日:热闹的“达连湾”图书馆
(2nd Sep 2008)圖書館觀點:SOPAC 2.0
(9月 1st, 2008)数图研究笔记:SOPAC2.0发布
(2nd Feb 2008) 圖書館觀點:Web 2.0 工具不是萬能靈丹 (xtykc注:对2.0的反思、反省,重点推荐!)
(2007-01-22)编目精灵:AADL的新版OPAC

07.15.09 PVLD Goes Live with SOPAC
09.25.08 SOPAC 2 Released. Thesocialopac.net Launched.
09.01.08 A new DarienLibrary.org
11.14.08 SOPAC for Sirsi? Yes we can.
08.16.08 SOPAC 2.0: What to Expect
01.17.08 Library 2.0 Debased.
01.25.07 SOPAC, 4 days later.
01.21.07 AADL.org Goes Social

其它:

[PDF]开放源代码OPAC系统的比较: Scriblio和VuFind

开源图片建站软件Gallery

xtykc 03月 24th, 2009

Gallery是一款流行的开源图片建站软件,相比之前试过的Omeka要成熟得多,安装时也没有那么多BT的要求,更重要的是,插件众多,功能齐全,且高度可配置,虽然不如Drupal那样强大到有变态之嫌,但作为专业的图片管理软件,已经很让人惊喜了,目前的最新版是3.0 Alpha 2,还存在着bug,还是2.X的可用性比较好,2.x的最新版是2.3。

安装了Gallery2.3 Full版的gallery包括72个插件,有如下主要功能:

1.基于LAMPP,开源,采用GPL协议

2.支持功能模块和外观主题(theme)的即插即用

3.支持评论、标签、评等、RSS订阅等2.0功能

4.支持多层次的相册管理和操作(添加、删除、移动),幻灯片放映、显示照片的 EXIF/IPTC信息,发送eCard,自定义水印等又酷又炫的功能

5.支持Google Map

6.支持ZIP打包批量上传、从 Picasa导入、从指定服务器导入、网络摄像头等多种方式

7.多种用户注册激活方式和基于相册的用户管理与权限控制

8.空间配额可分配

9.基于Web的管理和维护(如数据库备份)

10.支持多语言,已汉化

总而言之,无论如何,虽然尽管2.0已经被大家嚼烂了,谈腻了,偶仍然不得不说,Gallery是一款很2的图片建站工具,WordPress和Drupal都有支持它的插件/模块,其影响力可见一斑。以Gallery2.3建站的图书馆图片网站不久将现身图林,愿各位图林老鸟们都能积极地与之亲密接触。

启用OpenLDAP的日志功能

xtykc 03月 17th, 2009

1.在slapd.conf中加一行:

loglevel        4095

2.在/etc/syslog.conf 中加入ldap日志文档:

local4.*                                                /var/log/ldap.log

3.在终端用命令重启syslog服务

# service syslog restart

4.在/var/log/下可以找到一个ldap.log文件

——————————————

用命令查slapd的参数说明

# man slapd.conf

参考:http://idcnews.net/html/edu/20080101/284360.html

第二届《数字图书馆与开放源代码软件》(DLIB&OSS)听会记

xtykc 03月 14th, 2009

code4lib 2009年会刚刚落幕,它的国内版也在北京的料峭春寒中蹒跚起步了。

这是国内的第二届,时至今日,无论是因为经济危机的影响,还是技术发展的必然,开源软件已经势不可挡,一路裹挟着开源的思想和精神,春风一般吹进图书馆这个古老的领域,虽然还带着刺骨的寒冷,但还是给了人们许多振奋和希望。

这次会议就像一个网络BBS在现实中的翻版,似乎没有设什么门槛限制,资深学者和在校学生,著作等身的研究馆员和初出茅庐的技术新锐,共聚一堂。正因为如此,两天的时间被安排得满满当当,几乎没有留下任何提问和交流的时间,不过,对于我们这些矜持的东方人来说,会议间的提问和交流大多时候只是一个摆设,这也算是我们的一个特色吧。

中国开源软件推进联盟主席陆首群《中国开放源码软件发展现状》中有一些统计数字,如国内开源社区的数量,开源软件在各类应用中所占的市场份额,由中国人贡献给Linux等知名OSS的补丁数量等等,可以对中国OSS的发展现状有一个大致的把握。

张晓林教授的“Open is phylosophy”让在场听众印象深刻,他主张在应用开源软件时的三个尽可能:“尽可能使用第三方软件/插件,尽可能使自己的开发嵌入其它系统,尽可能不改动原有软件代码”和张甲教授后来讲到的“能得到的绝不开发,只开发有自己特色的,尽可能与商业系统集成,动手之前尽可能想到别人比自己开发得更好”有异曲同工之妙,很让偶们这些经常不自己开发一把就手痒、就不足以显示自己水平的半吊子酒徒们警醒。

工业和信息化部软件与集成电路促进中心(CSIP)主任助理、中国开源中心主任陈伟的《开源软件的应用及其许可规则》讲到了OSS应用中涉及到的法律问题,提醒我们,自由要以遵守规则为前提。

偶东北师大母校的学弟们讲了《数字图书馆应用开源软件的商业模式》,开源不等于免费,开源也可以用来赚钱养家糊口,再牛的牛人,也避免不了吃喝拉撒这些凡尘俗事不是。

从出现在会议报告中的开源软件类型来看,开源软件已经不知不觉地渗透到了图书馆的各个角落:

基于DSpace的机构库在此次会议中出尽风头;

知识组织系统和工具也占了相当大的份量;

开源OPAC Scriblio、VuFind的研究和应用开始起步;

开源ILS也得到许多关注;

开源的数字资源采集和长期保存软件的应用,第一次听到DAITSS系统;

开源全文检索引擎Lucene多次吸引了听众的眼球;

基于Ajax的异步语义检索实现方法没有题目本身看上去那么玄;

炙手可热的Drupal只有本人一枝独秀(臭美!);

… …

总之,这次参会可以说的开了眼界了,刚刚看了下,会议报告的PPT还没有在会议网站上公开,没有参会的同学们还得等了。

Omeka安装杂记 (四) :在Apache中启用rewrite_module

xtykc 02月 26th, 2009

Omeka安装时,有一个程序检查apache中是否启用了rewrite_module, 如果程序检测到rewrite_module没有启用,安装就无法进行下去。

rewrite_module如何启用,找不到官方文档,我是这么做的:

1.在apache configure时加上参数 –enable-rewrite

2.配置httpd.conf, 打开override,具体做法参见前面的博文

3.对omeka目录也要作定义,在httpd.conf中加上下面这一段,注意黑体字:

<Directory “/usr/local/apache/htdocs/omeka”>
AllowOverride All
RewriteEngine On
Order allow,deny
Allow from all
</Directory>

Apache的LDAP认证详解

xtykc 02月 24th, 2009

其实思路很简单,有两种办法:

  1. 使用.htaccess文件——在需要认证的应用(application)主目录下创建.htaccess文件,如/usr/local/apache/testldap/.htaccess
  2. 配置apache的httpd.conf

但要使配置生效,需要一些前提条件:

1. apache要启用两个module: ldap_module和authnz_ldap_module。可参见上上篇博文。需要说明的是,对于不同版本的apache,支持LDAP的模块是有差别的,一般来说,人们一般不太愿意从研究apache自带的文档入手,总是希望到网上找一些捷径,我就是这种人之一,事实证明,想走捷径的人往往会走弯路。网上关于apache+ldap的文章,很少有强调apache版本的,apache2.2之前的版本,支持LDAP的模块是ldap_module和auth_ldap_module,但对于apache2.2来说,是ldap_module和authnz_ldap_module,在apache2.2.11的源文件httpd-2.2.11/modules/ldap/下,有一个README.ldap文件,里面就清楚明白地写明apache在configure时的参数是:–with-ldap –enable-ldap –enable-authnz-ldap

2.第二个重要的前提条件是一定要开启override,我就是在这里徘徊不前了N久N久。一开始,我一点都不了解apache的override和我要达到的目的有什么关系,以至于一直在怀疑配置文档里面的配置是否存在问题。后来还是在这里获得了这个信息, 但在httpd.conf文件里加上:

<Directory “/usr/local/apache/htdocs/testldap”>

AllowOverride All

</Directory>

但根本不起作用,之后又试过了很多别的方法,无果。开始从头到尾检查httpd.conf文件,终于发现了问题所在,原来,在“

<Directory “/usr/local/apache/htdocs/testldap”>

AllowOverride All

</Directory>

”的前面,还有这么一段:

<Directory “/usr/local/apache/htdocs”>
#
# Possible values for the Options directive are “None”, “All”,
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that “MultiViews” must be named *explicitly* — “Options All”
# doesn’t give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be “All”, “None”, or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all

</Directory>

这一段,把整个htdocs目录都设成:AllowOverride None了,把这里的None改成All,把Options Indexes FollowSymLinks改成Options All就OK了.

3. 做好前面量步后,就可以配置.htaccess文件了. .htaccess文件是apache控制访问的配置文件,放在应用的根目录下,这样,当用户在浏览器端打开该应用时,就会根据.htaccess文件中的配置来控制用户的访问。要使apache支持LDAP认证的配置如下:

AuthType Basic
AuthBasicProvider ldap
AuthName “LDAP Authorization”
AuthzLDAPAuthoritative off
AuthLDAPURL ldap://localhost:389/ou=sysnet,dc=shlib,dc=com?cn?sub?(objectClass=*)
Require valid-user

用任意文本编辑器将上面的代码写上,存为名为.htaccess的文件,放在需要认证的应用的根目录下,重启apache, 在浏览器上输入该应用的地址,如:http://localhost/testldap, 回车后就会弹出提示输入用户名和密码的对话框,说明已经配置好了.

也可以不用.htaccess文件,直接在httpd.conf中配置,加上下面代码即可:

<Location /usr/local/apache/htdocs/testldap>
AuthType Basic
AuthBasicProvider ldap
AuthName “LDAP Authorization”
AuthzLDAPAuthoritative off
AuthLDAPURL ldap://localhost:389/ou=sysnet,dc=shlib,dc=com?cn?sub?(objectClass=*)
Require valid-user
</Location>

教训:相信自己,依靠自己,不要迷信网络.

Omeka安装杂记 (三):ImageMagick for Omeka安装

xtykc 02月 23rd, 2009

在ImageMagick的源文件下,有一个install-unix.txt文件,里面说明了ImageMagick所需要的支持库,以及整合这些支持库的方法.

先做了个测试,安装jpegsrc,使ImageMagick支持JPEG V1:

配置安装路径:

./configure –prefix=/usr/local/jpeg6 –enable-shared –enable-static

安装ImageMagick, 在配置时用CPPFLAGS参数指定jpeg6的header文件的位置,用LDFLAGS参数指定lib的位置,用绝对路径,这样,ImageMagick就能自动监测到这些支持库.

./configure CPPFLAGS=’-I/usr/local/jpeg6/include’ LDFLAGS=’-L/usr/local/jpeg6/lib’ –prefix=/usr/local/ImageMagick

configure结束之后,可以看到: JPEG v1 –with-jpeg=yes yes

说明安装成功,已经能支持JPEG/JPG

接下来,安装libpng,freetype,jasper,安装目录都在/usr/local下.

安装ImageMagick的配置参数如下:

./configure CPPFLAGS=’-I/usr/local/jpeg6/include -I/usr/local/libpng/include -I/usr/local/freetype/include -I/usr/local/freetype/include/freetype2 -I/usr/local/jasper/include -I/usr/local/jasper/include/jasper’ LDFLAGS=’-L/usr/local/jpeg6/lib -L/usr/local/libpng/lib -L/usr/local/freetype/lib -L/usr/local/jasper/lib’ –prefix=/usr/local/ImageMagick

同样在configure结束后一定要检查一下配置是否生效,看看–with-freetype =yes后面是yes还是no(failed tests)

如果是yes,说明配置都已经成功了,可以放心安装了.

感谢提供线索:1 2

Omeka安装杂记(二):ImageMagick+imagick+PHP安装

xtykc 02月 20th, 2009

ImageMagick 是一款很强大的图片处理软件,可以创建、编辑、压缩图片,转换图片的格式,支持的格式多达100种以上,包括 DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, 和 TIFF. 可以调整大小、颜色、分辨率,添加各种动态效果,或者在图片上添加文字、线条、标记等。它可以作为一种单独的软件使用,在Linux终端直接用命令操作,也为PHP等应用提供接口,提高和丰富应用的图片处理能力,imagick则为PHP应用支持ImageMagick提供一个必需的容器(wrapper)。

ImageMagick是Omeka必需的,没有它,在omeka powered sites上上传图片时会报错:ImageMagick is not properly configured.Please check your settings and then try again.

安装ImageMagick很简单,直接参照ImageMagick上的instructions就可以,难点是安装imagick。

这句话会引起误解, Omeka报错的原因不是因为没有安装imagick, 其实很简单,是因为没有正确配置ImageMagick的convert函数在服务器上的绝对路径,eg:我的ImageMagick安装路径是:/usr/local/ImageMagick,那么convert的绝对路径是:/usr/local/ImageMagick/bin/convert. 这就是在Omeka的settings->general settings->Path To Convert项中所填的值.

虽然Omeka是基于LAMPP架构的, 但它却并未倚赖于LAMPP本身对ImageMagick的支持,即用PHP的imagick模块来联接PHP和ImageMagick,而是直接定位到ImageMagick的命令. 可惜的是Omeka的安装说明简单得可怜,只是说需要Omeka的支持,却没有详细地说明ImageMagick是怎么支持Omeka的. 会让我这种入门者误入歧途, 好在我从apache的error_log中获得了一些信息,推测出了原因之所在.但还是免不了走了许多的弯路.

然而,仅仅只是按照ImageMagick官网上的安装方法还是远远不够的,还需要很多其它的支持库,才能使ImageMagick正常运作,这一点也是我从apache的error_log中的报错信息:no decode delegate for this image format 中得知的, 也是Omeka的官网上没有说明的. ImageMagick for Omeka的安装将会写在以后的博文中, 下面,还是关于ImageMagick+imagick+PHP的安装:

我开始时参照了以下安装方法:

http://info.52z.com/html/20419.html

http://bbs.unixtech.cn/read.php?tid=1229

http://doc.linuxpk.com/1864.html

http://hi.baidu.com/billdkj/blog/item/998373b336b477a0d8335a0d.html

这些安装方法都需要重新编译PHP,而且其中的过程很混乱(或者是作者懒得把详细的过程准确无误地写出来),试过多次,花了3个小时也没装好,让人极度郁闷。ImageMagick和PHP的官网上,俺能找得到的Manual都超级简单,没有可操作性。

刚刚发现了某位老兄的一篇帖子,不得不佩服这个老外的语言能力,上面的4个链接全部是中文的,我却看得脑子里面拧成了天津麻花,仅凭我这菜鸟的经验试了又试无论如何也不成功,看了这位老兄的E文帖子,我觉得脑子里的天津麻花瞬时变成了清水挂面,真想立马就杀到单位,扑在服务器上试验一番!直觉应该会成功。

这里提到的方法,不是把imagick编译成静态module,不用重新编译PHP,而是直接把imagick编译成imagick.so文件,再在php.ini里用动态加载的方法。写得简单明了,但凡涉及到一些实际操作细节该提到的一定说得清楚明白。

这里还有一位老兄的帖子,思路和上面的老外一样,下面是他的代码,我整理了下:

tar xvf imagick-2.2.0.tgz
cd imagick-2.2.0
/usr/local/php5/bin/phpize

./configure –with-php-config=/usr/local/php5/bin/php-config

make
make install

编辑php.ini,加上下面两行:
extension_dir = “/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/”
extension = “imagick.so”

庆祝apache+LDAP认证成功!!!!!!!

xtykc 02月 20th, 2009


费了将近2天时间,历尽艰辛,终于在今天下午1点45分左右,成功地实现了apache的LDAP认证,同时解决了昨天安装Omeka之前遇到的rewrite_module不能启用的问题,成功地安装了Omeka,心里感觉很美,特发帖庆祝!!!

————————————————————————————————

敬请期待下篇博文:《apache的LDAP认证详解》

————————————————————————————————

鸣谢:

http://www.opensourcehowto.org/how-to/apache/setup-apache2-with-openldap-authentication.html

http://bbs.chinaunix.net/archiver/fid-49.html

http://bbs.chinaunix.net/archiver/tid-1362520.html

http://cat.xiexiao.com/when_htaccess_not_work/

http://blog.nlhs.tyc.edu.tw/post/3/344

Next »