プロが教えるわが家の防犯対策術!

★質問: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でこの方法ではブログは投稿できない。


と思うのですが、初心者のため、どっちなのか?そしてどうすればいいのか分かりません。

すみませんが、ご教授よろしくお願いします。

A 回答 (1件)

IncompatibleClassChangeErrorなので、コンパイルするときと実行するときとで参照しているクラスのバージョンが違うということです。


AtomPost.javaの34行目ということは、問題のクラスはXmlRpcClientかな。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!