シンプルな Java PubSubHubBub アプリケーションを開発しようとしています。このサンプル コードをダウンロードしてテストしましたが、サブスクライブしようとすると常にエラー 409 が発生します。PuSH 仕様に従って、次のリンクで独自のフィードを作成しました: receivetemplate.eu01.aws.af.cm/feed/
サブスクライバーの Test クラスのコードは次のとおりです。
package sub;
import java.net.InetAddress;
import PubSubHubbub.Web;
import PubSubHubbub.Subscriber;
public class Test {
private static Web webserver;
private static Subscriber sbcbr;
private static String hostname = null;
private static Integer webserverPort = 8080;
private static void startServer(){
try {
webserver = new Web(webserverPort);
sbcbr = new Subscriber(webserver);
InetAddress addr = InetAddress.getByName("receivetemplate.eu01.aws.af.cm");
hostname = addr.getHostName();
System.out.println("http://" + hostname + "/");
hostname = "http://" + hostname + "/";
} catch (Exception e) {
e.printStackTrace();
System.out.println("WebServer can not start");
}
}
public static void main(String[] args) {
try {
String hub = "http://pubsubhubbub.appspot.com/subscribe";
String hub_topic = "http://receivetemplate.eu01.aws.af.cm/feed/";
startServer();
int statusCode = sbcbr.subscribe(hub, hub_topic, hostname, null, null);
if (statusCode == 204){
System.out.println("the status code of the subscription is 204: the request was verified and that the subscription is active");
} else if (statusCode == 202){
System.out.println("the status code of the subscription is 202: the subscription has yet to be verified (i.e., the hub is using asynchronous verification)");
} else{
System.out.println("the status code of the subscription is:" + statusCode);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
hub_topic をhttp://pubsubhubbub-subscriber.appspot.com/に置き換え、pubsubhubbub-subscriber.appspot.com を InetAddress.getByName() に渡すと、応答は 204 になり、すべてが機能します。
私が間違っていることについていくつかの情報を教えてもらえますか?フィードにエラーはありますか?