LivedoorブログへAtomで投稿できない
★質問:LivedoorブログでAtomでブログ記事を投稿するツールを作っているがエラーになります。
★環境:Java(jdk1.6.0_26)
Eclipse3.6
OS:Windows7
Java初心者です。
ネットから拾ってきたプログラムを参考にLivedoorブログへ記事を投稿する
ツールを作っています。
以下のようなソースを書きました。
★ソース
package ROME;
import java.net.URL;
import java.text.DateFormat;
import java.text.ParseException;
import java.util.Hashtable;
import org.apache.xmlrpc.client.XmlRpcClient;
import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
import org.apache.xmlrpc.XmlRpcException;
import java.net.MalformedURLException;
public class AtomPost {
public static void main(String[] args) throws XmlRpcException,
MalformedURLException, ParseException {
String aServerURL = "http://cms.blog.livedoor.com/atom/";
String aTitle = "テスト";
String aHtml = "本文テスト";
String ablogId = "●●●●●●";//LivedoorブログID(数字7桁)
String aAccount = "●●●●●●";//Livedoorブログアカウント
String aPassWord = "●●●●●●";//パスワード
Post(aServerURL, aTitle, aHtml, ablogId, aAccount, aPassWord);
}
public static void Post(String aServerURL, String aTitle, String aHtml,
String ablogId, String aAccount, String aPassWord)
throws XmlRpcException, MalformedURLException, ParseException {
boolean ret = false;
XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
config.setServerURL(new URL(aServerURL));
XmlRpcClient client = new XmlRpcClient();
client.setConfig(config);
// 新規投稿の内容 ※HashMapでもイイと思う
Hashtable<String, Comparable> hash = new Hashtable();
hash.put("title", aTitle);
hash.put("description", aHtml);
hash.put("dateCreated", DateFormat.getDateInstance()
.parse("2011/08/07"));
hash.put("mt_convert_breaks", true); // 本文中の改行をbrタグで反映
hash.put("mt_allow_comments", true); // コメントを受け付けるか
hash.put("mt_allow_pings", true); // トラックバックを受け付けるか
hash.put("mt_text_more", "続きを読むの部分です");
Object[] params = new Object[5];
params[0] = ablogId; // blogId
params[1] = aAccount;
params[2] = aPassWord;
params[3] = hash;
params[4] = true; // publish(trueで公開, falseで下書)
Object result = client.execute("metaWeblog.newPost", params);
// 新規投稿した記事番号が返る
System.out.println("記事番号:" + result + "です。");
}
}
しかし、上記ソースを実行すると、以下のようなエラーがでます。
Exception in thread "main" java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at ROME.AtomPost.Post(AtomPost.java:34)
at ROME.AtomPost.main(AtomPost.java:22)
★具体的な質問
一体、何が間違っているのでしょうか?
可能性としては…
1.環境が間違っている
例えば、必要なライブラリが足りない等
2.ソースが間違っている。
3.そもそもLivedoorでこの方法ではブログは投稿できない。
と思うのですが、初心者のため、どっちなのか?そしてどうすればいいのか分かりません。
すみませんが、ご教授よろしくお願いします。
お礼
dummyplugさん! お忙しい中、 アドバイスいただき本当にありがとうござました! 質問させていただきました「kdome」です。 ご指摘いただきました内容を参考に、 Sun RPCの「remote Tea」をインストールしてみました。 その後、javacにおけるエラー表示が完全にでなくなり、 前進することが出来ました。 カスタマイズ作業を更に進めたいと思います。