Опитвам се да използвам най-новия канал на Smackx, за да получа и след това да се абонирам за възел pubsub. Openfire обаче просто ми изпраща грешка: елементът не е намерен (404).
Създавам обектите на Java от ColdFusion, така че моите кодови фрагменти може да изглеждат смешни, но може би някой ще може да ми каже какво съм забравил.
Ето как създавам възела:
ftype = createObject("java", "org.jivesoftware.smackx.pubsub.FormType");
cform = createObject("java", "org.jivesoftware.smackx.pubsub.ConfigureForm").init(ftype.submit);
cform.setPersistentItems(true);
cform.setDeliverPayloads(true);
caccess = createObject("java", "org.jivesoftware.smackx.pubsub.AccessModel");
cform.setAccessModel(caccess.open);
cpublish = createObject("java", "org.jivesoftware.smackx.pubsub.PublishModel");
cform.setPublishModel(cpublish.open);
cform.setMaxItems(99);
manager = createObject("java", "org.jivesoftware.smackx.pubsub.PubSubManager").init(XMPPConnection);
myNode = manager.createNode("subber", cform);
И ето как се опитвам да стигна до него (в различен раздел от кода):
manager = createObject("java", "org.jivesoftware.smackx.pubsub.PubSubManager").init(XMPPConnection);
myNode = manager.getNode("subber");
Веднага след създаване на възела, изглежда, че мога да публикувам в него така:
payload = createObject("java", "org.jivesoftware.smackx.pubsub.SimplePayload").init("book","pubsub:test:book","<book xmlns='pubsub:test:book'><title>Lord of the Rings</title></book>");
item = createObject("java", "org.jivesoftware.smackx.pubsub.Item").init(payload);
myNode.publish(item);
Обаче извикването getNode() е това, което причинява грешка в моя код.
Проверих, че възлите се създават, като проверих DB, използван от моя openfire сървър. Мога да ги видя там, правилно приписани като листни възли и т.н.
Някакъв съвет? Някой друг да прави нещо с XMPP и ColdFusion? Имах голям успех в изпращането и получаването на съобщения с CF и Smack, просто pubsub все още не работи :)
Благодаря!