怎样通过xmlrpc往wordpress上传文件

public class XmlRpc {
public static void main(String[] args) throws Exception {
XmlRpc xmlrpc = new XmlRpc();
Object result = xmlrpc.uploadFile();
System.out.println(result);
}
XmlRpcClient xmlrpc;
XmlRpcClientConfigImpl config;
public XmlRpc() throws MalformedURLException{
xmlrpc = new XmlRpcClient();
config = new XmlRpcClientConfigImpl();
config.setServerURL(new URL(“http://yourwordpress/xmlrpc.php”));
config.setConnectionTimeout(1000000);
xmlrpc.setConfig(config);
}

public Object uploadFile() throws XmlRpcException, IOException{
FileInputStream fis = new FileInputStream(“c:/01.txt”);
byte[] b = new byte[fis.available()];
fis.read(b);
HashMap map = new HashMap();
map.put(“name”, “abc.txt”);
map.put(“bits”, b);
Object[] params = new Object[] {“1″,”yourname”,”yourpassword”,map};
return xmlrpc.execute(“metaWeblog.newMediaObject“, params);
}
}

返回结果:

{type=, file=abc.txt, url=http://yourwordpress/wp-content/uploads/abc.txt}

使用apache的xmlrpc-client-3.1, wordpress2.3.2上测试通过

改变

今天从沙田出发往深圳,不久发现忘了带国内的sim卡,意味着到了深圳无法和哥取得联系.我选择到时候找电话亭,顺便看看自己对手机的依赖有多大.其实也想到找个人借手机一用,可是电视上天天—向你借手机的人100%是骗子.
还真有点,不做贼也心虚.
当我发现深圳的公共电话不能投币,只能用卡时,旁边一个小青年说等我打完用我的吧,
真是太感谢了,刚刚忘记带卡,我就打一个市内电话
… … 要不你拿我手机打吧,也没多少钱
啊,太谢谢了

当我拿过这只手机时发现这是一只破的不能再破的nokia

就算是骗子横行我们就不帮助他人了么?诚信缺失我们就该不相信别人来保护自己?相信自己的判断力,改变点东西.以前我会犹豫,现在我不会犹豫.向那个小哥致敬!
Powered by MoFire

七个习惯书摘

七个习惯书摘
@对依赖的逆反恰是依赖的另一种表现,是成熟体系的最低层.他们行为叛逆,以敌人为生活中心,特别在乎自己的”权利”,总想证明自己的独立性,却很少聆听和尊重内心深处的声音
@低层次的沟通源自低度信任
@缺乏安全感的人认为所有的人和事都应该依着他们的模式
@人生最值得投资的就是磨炼自己
Powered by MoFire

acegi整合struts-menu时filter-mapping的问题

今天在整合acegi和struts-menu的时候老是有问题,跟进源代码发现struts-menu的RolesPermissionsAdapter 中:

public boolean isAllowed(MenuComponent menu) {
if (menu.getRoles() == null) {
return true; // no roles define, allow everyone
} else {
// Get the list of roles this menu allows
String[] allowedRoles = delimiters.split(menu.getRoles());
for (int i=0; i < allowedRoles.length; i++) {
if (request.isUserInRole(allowedRoles[i])) {
return true;
}
}
}
return false;
}

request.isUserInRole(allowedRoles[i])返回是false. – 因为这个request是sitemesh的pageinforequestWrapper!!!
(之前找了各种可能都没有发现异常,试了无数种 可能的原因)

为什么会这样,之前做的也是完全一样啊?仔细比较了以前写的和现在的,发现 filter-mapping的顺序不一样:

之前写的是acegi的filter-mapping在第一个,试着把现在的filtermapping 放到第一个.成功!

原来filter-mapping的顺序也是有讲究的.如果先mapping sitemesh的filter,request就会被sitemesh的pageinforequestwrapper(?) 包裹,然后就不能被acegi的filter包装成SecurityContextHolderAwareRequestWrapper.

这样在调用isUserInRole时候就出问题了,因为使用的不是acegi的实现.

记录下来.

存储塔的idea

存储塔的idea
现在已经有小型个人raid产品出现,但太过专业,基本面向小型企业和专业认识,有没有一个低门槛的个人存储管理方案.比如我只想在显示器旁放一个类似塔一样的装置,上面可以接泊各种存储设备,硬盘,usb手指,各种存储卡.只要将他们连到踏上,就可以通过一个统一的操作平台进行管理.samba或者ftp.
Powered by MoFire

土拨鼠日

2月2日,伟大的思想家罗素的生日。

土拨鼠日是美国的一个节日,每年的2月2号,美国的某个小镇会让一只土拨鼠告诉人们冬天会继续还是提前结束。第一次听说这个节日是从bill murry主演的《土拨鼠日》,andie macdowell从那之后我才知道她的名字(之前看过她和“大鼻子”德帕迪约演的绿卡就让我印象深刻了)。我对这个节日也没有兴趣。只是因为它是关于冬天的,不由就想到了今年这个鬼天气。

大仓鼠保佑那些受到雪灾的人们!

使用antenna时候的问题

编译时找不到List.deleteAll这个方法,因为默认的的antenna使用cldc1.0。而这个deleteall是1.1的方法,解决方法是覆盖默认的cldc版本

<property name=”wtk.cldc.version” value=”1.1″/>

Antenna是用来构建j2me项目的ant任务 扩展。让整个构建过程变的很简单和易于管理。

附我使用的构建脚本供参考:

<?xml version=”1.0″?>

<project name=”MoFire” default=”build” basedir=”.”>

<!– Define the Wireless Toolkit home directory. Needed by the tasks. –>

<property name=”wtk.home” value=”D:developmentWTK2.5.2″/>
<property name=”wtk.cldc.version” value=”1.1″/>
<property name=”wtk.midp.version” value=”2.0″/>
<property name=”wtk.proguard.home” value=”D:developmentworkspaceMElibproguard4.1″/>

<!– Define some additional properties for this project. Not required. –>

<property name=”midlet.name” value=”${ant.project.name}”/>
<property name=”midlet.home” value=”.”/>
<property name=”midlet.vendor” value=”MoDoFo”/>
<property name=”midlet.version” value=”0.0.1″/>
<!– Define the tasks. –>

<taskdef resource=”antenna.properties” classpath=”lib/antenna-bin-1.0.0.jar”/>

<target name=”clean”>
<delete failonerror=”false” dir=”classes”/>
</target>

<target name=”dist” depends=”build”>
<mkdir dir=”dist/${midlet.name}-${midlet.version}” />
<property name=”distfolder” value=”dist/${midlet.name}-${midlet.version}”/>
<zip destfile=”${distfolder}/${midlet.name}-${midlet.version}-src.zip”>
<fileset dir=”src” includes=”**/*.*” />
<fileset dir=”res” includes=”**/*.*” />
</zip>
<copy file=”${midlet.name}.jad” todir=”${distfolder}” />
<copy file=”${midlet.name}.jar” todir=”${distfolder}” />
<copy file=”README.txt” todir=”${distfolder}” />

<wtkrun jadfile=”${distfolder}/${midlet.name}.jad” device=”DefaultColorPhone” wait=”true”/>
</target>

<target name=”build”>

<!– Make a JAD file from scratch, don’t copy the original one. –>

<wtkjad jadfile=”${midlet.name}.jad”
name=”${midlet.name}”
vendor=”${midlet.vendor}”
version=”${midlet.version}” >

<midlet name=”MoFire”
icon=”/logo.png”
class=”com.modofo.mofire.MoFire”/>
</wtkjad>

<mkdir dir=”classes”/>

<!– Compile everything, but don’t preverify (yet). –>

<wtkbuild srcdir=”${midlet.home}/src”
destdir=”classes”
preverify=”false”/>

<!– Package everything. Most of the necessary information is
contained in the JAD file. Also preverify the result this
time. To obfuscate everything, set the corresponding
parameter to “true” (requires RetroGuard or ProGuard). The
version parameter increments the MIDlet-Version by one. –>

<wtkpackage jarfile=”${midlet.name}.jar”
jadfile=”${midlet.name}.jad”
obfuscate=”false”
autoversion=”true”>

<!– Package our newly compiled classes and the
resources from the WTK’s demo application. –>

<fileset dir=”classes”/>
<fileset dir=”${midlet.home}/res”/>

</wtkpackage>

<!– Obfuscate. –>
<!– Not needed
<wtkobfuscate jarfile=”${midlet.name}.jar”
jadfile=”${midlet.name}.jad”/>
–>
<!– Preverify things, this time separately to test the
corresponding task. –>

<wtkpreverify jarfile=”${midlet.name}.jar”
jadfile=”${midlet.name}.jad”/>

<!– Convert the JAR file into a MIDP for PalmOS PRC file. –>
<!– Not supported in wtk anymore – Zhangv
<wtkmakeprc jadfile=”${midlet.name}.jad”
prcfile=”${midlet.name}.prc”/>
–>
<!– Start the MIDlet suite –>
<!– Not need
<wtkrun jadfile=”${midlet.name}.jad” device=”DefaultColorPhone” wait=”true”/>
–>
</target>
</project>

搬到旺角

办公室今天搬到了旺角。就在kcr上面的新世纪。据说8月份要搬到海防博物馆那边(港岛东北部),还好那时候已经闪人了。新的办公环境没有什么特别的,大办公室人多,不能像以前几个人在小会议室里偶尔可以说说笑笑teambuilding一下。而且很快发现这里有一个pressing lady – 下班时候告诉她的手下,明天早上(周六)七点来加班。

最牛b的是,上厕所需要钥匙。。。。钥匙要过一个星期才能拿到。不过还好,坚持两天就回家过年了。