smack item-not-found(404) cancle 及asmack8-4.0.5.jar包的使用简介

smack发布节点时,出现如下两个错误:

1.<error code="409" type="cancel"><conflict xmlns="urn:ietf:params:xml:ns:xmpp〉这个错误, 明明还没有创建,就提示冲突了

2.smack item-not-found(404) cancle

在网上查了一下说是jar包的bug问题,在4.0.4修复了这个bug,翻译过来就是当创建PayloadItems时PubSub ItemProvider 仅仅处理定义的最外层的命名空间

换了个最新的asmack8-4.0.5.jar包(下载地址:http://asmack.freakempire.de/),更多可访问https://github.com/Flowdalic/asmack

smack 在4.0之后某些类有些变化,具体可以将smack下载下来,自己查看api,同时参考http://www.igniterealtime.org/builds/smack/docs/latest/documentation/index.html

好了,现在说说目前用到改变的方法:

1.SmackConfiguration.DEBUG_ENABLED = true;//开启DEBUG模式

2.ConnectionConfiguration config = new ConnectionConfiguration(

SERVER_HOST, SERVER_PORT,

SERVER_NAME);

config.setReconnectionAllowed(true);

config.setSendPresence(true);

config.setDebuggerEnabled(true);

config.setSecurityMode(SecurityMode.disabled);

//System.setProperty("javax.net.ssl.trustStore", "akeystore.jks");

// config.setSASLAuthenticationEnabled(true);/

connection = new XMPPTCPConnection(config);

try {

connection.connect();

} catch (SmackException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}//连接到服务器

3. //消息监听

ChatManager cm = ChatManager.getInstanceFor(XmppConnection.getConnection());

4.注册

/**

* *

* <ul>

* <li>name -- the user‘s name. 031 *

* <li>first -- the user‘s first name. 032 *

* <li>last -- the user‘s last name. 033 *

* <li>email -- the user‘s email address. 034 *

* <li>city -- the user‘s city. 035 *

* <li>state -- the user‘s state. 036 *

* <li>zip -- the user‘s ZIP code. 037 *

* <li>phone -- the user‘s phone number. 038 *

* <li>url -- the user‘s website. 039 *

* <li>date -- the date the registration took place. 040 *

* <li>misc -- other miscellaneous information to associate with the

* account. 041 *

* <li>text -- textual information to associate with the account. 042 *

* <li>remove -- empty flag to remove account. 043 *

* </ul>

*

* @throws NotConnectedException

*/

private void registered() throws NotConnectedException {

String accounts = mNameEt.getText().toString();

String password = mPasswdEt.getText().toString();

String email = mEmailEt.getText().toString();

String mingcheng = nameMCH.getText().toString();

Map<String, String> attributes = new HashMap<String, String>();

attributes.put("name", mingcheng);

attributes.put("email", email);

attributes.put("misc", "android");

attributes.put("username", accounts);

attributes.put("password", password);

Registration reg = new Registration();

reg.setType(IQ.Type.SET);

reg.setTo(XmppConnection.getConnection().getServiceName());

reg.setAttributes(attributes);

// reg.addAttribute("name", mingcheng);

// reg.addAttribute("email", email);

// reg.addAttribute("android", "geolo_createUser_android");

PacketFilter filter = new AndFilter(new PacketIDFilter(

reg.getPacketID()), new PacketTypeFilter(IQ.class));

PacketCollector collector = XmppConnection.getConnection()

.createPacketCollector(filter);

XmppConnection.getConnection().sendPacket(reg);

IQ result = (IQ) collector.nextResult(SmackConfiguration

.getDefaultPacketReplyTimeout());

// Stop queuing results

collector.cancel();// 停止请求results(是否成功的结果)

还有部分改变,更多可参考官方的api

时间: 2024-10-24 23:52:37

smack item-not-found(404) cancle 及asmack8-4.0.5.jar包的使用简介的相关文章

404错误 本地代理127.0.0.1

设置本地代理127.0.0.1:8080不能用了,出现404错误 原因:端口被占用了 win + R调出cmd,输入命令:netstat -ano,列出所有端口的情况. 输入命令:netstat -aon|findstr "8080",找到PID(最后一列),如 **** 继续输入tasklist|findstr "****"(****为PID),就能找到是什么软件占用的端口了 假如是Tencentdl.exe 输入:taskkill /f /t /im Tence

SpringMVC找不到JAR包报404问题

使用IDEA,在刚刚学习SpringMVC时会发现提示找不到jar包. 可以打开Artifacts中在WEB-INF下手动建立一个lib目录 然后导入所有包 原文地址:https://www.cnblogs.com/yfyyy/p/12321793.html

struts2 jar包导入Unable to load configuration. - bean问题 (404 源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示。)

用eclipse配置好了struts2,一运行tomcat就报错,我这里原因是我吧struts2的jar包都放进去了,太多了所以报错,然后我去掉了大部分留下几个核心jar包,还是报错, java.lang.NoClassDefFoundError: com/opensymphony/xwork2/ActionContext at org.apache.struts2.dispatcher.ng.InitOperations.cleanup(InitOperations.java:114) at

框架 day68 SpringMVC入门(框架原理,springmvc和mybatis整合)

第一天:注解开发基础(springmvc入门) springmvc框架原理(掌握) DispatcherServlet前端控制器.HandlerMapping处理器映射器.HandlerAdapter处理器适配器.ViewResolver视图解析器 springmvc入门程序 目标:加深对springmvc三大组件的认识 查询商品信息 重点掌握注解的HandlerMapping处理器映射器.HandlerAdapter处理器适配器(掌握) springmvc和mybatis整合(掌握) 通过一个

第一阶段冲刺(第二天)

今天,参照资料案例,利用 Smack 进行手机App 连接openfire服务器,由于下载的jar 包,缺少一些类,连接测试以失败告终 遇到了很多问题:jar包需要从网上进行查找,找到的一直不是很全,导致一些方法不能调用:电脑用的是校园网wifi 环境,同一帐号只能登录一台设备,没法让同一局域网下,最后,又用猎豹wifi 进行了wifi创建. 明天的目标是,修改安卓程序,使其能连接上openfire 服务器.

Win7环境下Eclipse连接Hadoop2.2.0

准备: 确保hadoop2.2.0集群正常运行 1.eclipse中建立java工程,导入hadoop2.2.0相关jar包 2.在src根目录下拷入log4j.properties,通过log4j查看详细日志 log4j.rootLogger=debug, stdout, R log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLa

【甘道夫】Win7环境下Eclipse连接Hadoop2.2.0

准备: 确保hadoop2.2.0集群正常运行 1.eclipse中建立java工程,导入hadoop2.2.0相关jar包 2.在src根目录下拷入log4j.properties,通过log4j查看详细日志 log4j.rootLogger=debug, stdout, R log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLa

11.MyBatis与Spring整合

测试代码在下面(没jar) 集成步骤 1.  jar包集成: 2.  配置文件集成(数据源): 3.  Spring对SqlSessionFactory进行管理配置: 4.  Mybatis程序编写(接口.映射文件): 5.  Spring通过配置文件管理mybatis 的对象: jar包集成 Mybatis3.2.7 的jar包(mybatis核心包.依赖包) Spring3.2.0 的jar包 Spring与mybatis的集成包        数据库驱动包 Dbcp连接池包 搭建工程环境

Mina、Netty、Twisted一起学(八):HTTP服务器

HTTP协议应该是目前使用最多的应用层协议了,用浏览器打开一个网站就是使用HTTP协议进行数据传输. HTTP协议也是基于TCP协议,所以也有服务器和客户端.HTTP客户端一般是浏览器,当然还有可能是其他东西.HTTP服务器,也就是Web服务器,目前已经有很多成熟的产品,例如Apache HTTP Server.Tomcat.Nginx.IIS等. 本文的内容不是讲解如何使用以上的HTTP服务器,而是要分别用MINA.Netty.Twisted实现一个简单的HTTP服务器. 首先,要简单了解一下