整合androidpn与SSH

整合androidpn官方0.5版本


org.androidpn.server.starter.ServerStarter  程序的启动类,加载配置文件、jar包,创建XmppServer类实例,启动XmppServer


org.androidpn.server.xmpp.XmppServer  核心服务类,单例模式,启动jetty的服务


第89行,加载config.properties 文件
第91行,加载spring-config.xml 配置文件
第94、95行,启动jetty的console


org.androidpn.server.xmpp.net.XmppIoHandler
消息处理核心类,在spring-config.xml文件的第101行配置,XmppServer在加载spring-config.xml的时候,Spring会自动创建XmppIoHandler的实例
在spring-config.xml的第128行配置服务绑定的ip地址和端口号




XmppIoHandler
sessionOpened方法在一个网络连接被打开的时候,自动触发调用(由Mina框架触发调用)
第92行,在session中保持Connection连接,此Connection类封装了Mina的IoSession(真正负责网络数据传输)和一个自定义的Xmpp的Session(org.androidpn.server.xmpp.session抽象类),自定义Session中有SessionManager(org.androidpn.server.xmpp.session)的引用,SessionManager是负责管理Client连接到服务器的Session(org.androidpn.server.xmpp.session.ClientSession)
第93行,在session中保持StanzaHandler(org.androidpn.server.xmpp.net.StanzaHandler,处理网络传输的基于Xmpp协议的XML字符流)


messageReceived方法在服务器端接受到客户端消息的时候,自动触发调用(由Mina框架触发调用)
第137行,从session中获得 StanzaHandler
第151行,StanzaHandler处理消息


StanzaHandler
process方法处理客户端发送的消息,消息是XML格式的字符流
1. 以 "<stream:stream" 开头的是初始化
2. 以 "</stream:stream>" 开头的是消息请求的结尾
3. 以 "<?xml" 开头的忽略,<?xml version="1.0"?>
第111行,生成RootElement
第116-131行,判断RootElement的Name,
"starttls" 是安全传输层协议的校验
"message"  Message类型的消息,表示两个jabber用户之间发送信息
"presence"  Presence类型的消息,用来表明用户的状态
"iq"  IQ 类型的消息,一种请求/响应机制
上面的三个消息类型对应下面三个类:
org.xmpp.packet.Message
org.xmpp.packet.Presence
org.xmpp.packet.IQ


======================禁止启动jetty应用服务器====================


org.androidpn.server.xmpp.XmppServer 
注释第94行-100行,这几行是启动jetty


修改第164行 locateServer方法:
170行,File confDir = new File(baseDir, "conf") 无法获得conf目录,
改为:URL conf = XmppServer.class.getClassLoader().getResource("conf");
 File confDir = new File(conf.getFile());


jdbc.properties修改相关数据库配置


======================整合到tomcat中===========================


将spring-config.xml中的内容复制到WEB-INF/applicationContext.xml,在顶部增加一段(只有在xmppHandler之前就行)
<bean id="xmppServer" class="org.androidpn.server.xmpp.XmppServer" >
</bean>
org.androidpn.server.xmpp.XmppServer 
注释第92行,加载spring-config.xml 的部分




实现ApplicationContextAware 接口,implements ApplicationContextAware
添加下面的方法
public void setApplicationContext(ApplicationContext context)
throws BeansException {
this.context = context;
}


删除下列的jar包:
starter.jar
servlet-api-2.5.jar
jasper-6.0.29.jar
jasper-el-6.0.29.jar
jasper-jdt-6.0.29.jar
el-api-6.0.29.jar
jstl-1.1.2.jar
standard-1.1.2.jar
jsp-api-2.1.jar
mysql-connector-java-5.1.6.jar
jetty-sslengine-6.1.25.jar


不要删 jetty-6.1.25.jar、jetty-util-6.1.25.jar,否则编译会报错
=======================彻底剥离jetty=============================


删除 jetty-6.1.25.jar、jetty-util-6.1.25.jar
删除 org.androidpn.server.container.AdminConsole


======================androidpn-client-0.5.0=============================


修改 res/raw/androidpn.properties 中的xmppHost、xmppPort的值


使用ADT-20.0.2 需要把lib目录改为libs,否则部署到手机或模拟器上时运行报错,原因是jar包找不到。
低版本ADT是自动查找lib目录下的jar包,支持4.0、4.1系统的高版本ADT是自动查找libs目录下的jar包的




--------------------SpringMVC --> Struts2--------------------------


====================添加Struts所需的jar包======================
添加Struts所需的jar包:
struts2-core-2.1.8.1.jar
xwork-core-2.1.6.jar
ognl-2.7.3.jar
freemarker-2.3.15.jar
commons-fileupload-1.2.1.jar
struts2-spring-plugin-2.1.8.1.jar


====================创建、配置Struts2 Action ======================
创建
org.androidpn.server.console.action.NotificationAction 
org.androidpn.server.console.action.SessionAction
org.androidpn.server.console.action.UserAction 


在WEB-INF/目录下创建 applicationAction.xml,在文件里定义上面三个Action,将Action注入到Spring中
在src 下创建 struts.xml,在文件中配置上面三个Action,定义跳转地址


=====================修改jsp======================
decorators/default.jsp  将文件中 .do 形式的链接地址全部改为 .action 
注意,在链接地址前增加应用上下文路径;跳转地址的格式要和struts.xml里配置的能够对应上


user/list.jsp
session/list.jsp
这两个文件只需要修改css和js的加载路径


notification/form.jsp
需要修改css和js的加载路径,还要修改form表单提交的url地址


====================修改web.xml======================
删除对SpringMVC的配置:第47行-56行
删除对sitemesh的配置: 第27行-41行
增加对Struts2的配置(自己google一下吧,这就省略了)




====================删除不相关的文件======================
删除 spring-webmvc-2.5.6.jar
删除 includes/taglibs.jsp 第4、5行和SpringMVC相关的标签
删除 WEB-INF/dispatcher-servlet.xml  SpringMVC配置文件
删除 controller/NotificationController.java
删除 controller/SessionController.java
删除 controller/UserController.java




WEB-INF/decorators.xml  sitemesh配置文件,删除后没有header和footer

















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值