• 締切済み

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でこの方法ではブログは投稿できない。 と思うのですが、初心者のため、どっちなのか?そしてどうすればいいのか分かりません。 すみませんが、ご教授よろしくお願いします。

みんなの回答

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.1

IncompatibleClassChangeErrorなので、コンパイルするときと実行するときとで参照しているクラスのバージョンが違うということです。 AtomPost.javaの34行目ということは、問題のクラスはXmlRpcClientかな。

関連するQ&A