基本环境搭建
参考文章: http://www.cnblogs.com/hanyonglu/archive/2012/03/16/2399655.html
首先, 我们需要下载androidpn-client-0.5.0.zip和androidpn-server-0.5.0-bin.zip。
下载地址:http://sourceforge.net/projects/androidpn/
服务器配置
在file中可以看到3个文件, 一般下载androidpn-client-0.5.0.zip和androidpn-server-0.5.0-bin.zip 就可以了
执行androidpn-server-0.5.0/bin/run.sh 就打开了androidpn服务器
在浏览器访问: http://127.0.0.1:7070/index.do 点击Users即可以看到所有用户, notifications中可以发送消息
客户端配置
导入项目: androidpn-client
在/res/raw/androidpn.properties 中配置ip地址以及端口号
执行项目, 如果崩溃, 而且问题是有VFY相关的, 就把lib文件夹右键-->Build Path --> Use as source folder
问题1: 在运行androidpn-server-0.5.0/bin/run.sh 的时候报错(运行方法: 直接将run.sh文件拖到控制台)
- line 6: ../logs/nohup.out: No such file or directory
- ../logs/nohup.out: No such file or directory
解决方法: 我先进入到androidpn-server-0.5.0/bin/ 文件夹中 在androidpn-server-0.5.0/文件夹下创建logs文件夹以及nohup.out文件
- mkdir ../logs
- touch nohup.out
问题2: 运行run.sh过程中出现错误:
- org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ioAcceptor' defined in class path resource [spring-config.xml]: Invocation of init method failed; nested exception is java.net.BindException: Address already in use
解决方法: 打开androidpn-server-0.5.0/conf/spring-config.xml
找到如下代码: 在126行
- <bean id="ioAcceptor" class="org.apache.mina.transport.socket.nio.NioSocketAcceptor"
- init-method="bind" destroy-method="unbind">
- <property name="defaultLocalAddress" value=":5222" />
- <property name="handler" ref="xmppHandler" />
- <property name="filterChainBuilder" ref="filterChainBuilder" />
- <property name="reuseAddress" value="true" />
- </bean>
问题3: 运行完run.sh后, androidpn的服务器就开始工作了, 但是访问 http://127.0.0.1:7070/index.do 访问的是其他的内容
原因: 说明7070端口被占用了(我安装了流媒体, 所以会被占用)
解决方法: 则在androidpn-server-0.5.0/conf/config.properties 中修改端口号
- apiKey=1234567890
- admin.console.host=127.0.0.1
- admin.console.port=7070
- xmpp.ssl.storeType=JKS
- xmpp.ssl.keystore=conf/security/keystore
- xmpp.ssl.keypass=changeit
- xmpp.ssl.truststore=conf/security/truststore
- xmpp.ssl.trustpass=changeit
但是 http://127.0.0.1:7072/index.do 还是不能访问
需要重启androidpn服务器, 我不知道怎么直接重启, 所以使用了最笨的方法: 关掉进程
使用命令查看所有进程
- lsof -i -n
找到:
- java 6111 leewolf 98u IPv6 0xeb19935fc3f3cca7 0t0 TCP *:8030 (LISTEN)
- java 6111 leewolf 103u IPv6 0xeb19935fc1f24467 0t0 TCP *:* (CLOSED)
就是6111是我们的androidpn的进程,
- kill -9 6111
关掉进程
再重新运行androidpn-server-0.5.0/bin/run.sh
现在应该没什么问题了