简介
APR(Apache portable Run-time libraries,Apache可移植运行库)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。MINA目前也能够支持APR。本章我们将讨论一下使用MINA进行APR传输的基本过程。我们使用Time Server为例。
前提
APR传输依赖于下列组件:
- APR运行库 - 从http://www.apache.org/dist/tomcat/tomcat-connectors/native/处下载并安装适当版本。
- JNI封装 - tomcat-apr-5.5.23.jar包含该release,将本地库加入路径。
使用APR传输
请参考Time Server例子的完整代码。基于NIO的Time server实现如下列代码所示:
IoAcceptor acceptor = new NioSocketAcceptor();
acceptor.getFilterChain().addLast( "logger", new LoggingFilter() );
acceptor.getFilterChain().addLast( "codec", new ProtocolCodecFilter( new TextLineCodecFactory( Charset.forName( "UTF-8" ))));
acceptor.setHandler( new TimeServerHandler() );
acceptor.getSessionConfig().setReadBufferSize( 2048 );
acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE, 10 );
acceptor.bind( new InetSocketAddress(PORT) );
如何使用APR传输如下列代码所示:
IoAcceptor acceptor = new AprSocketAcceptor();
acceptor.getFilterChain().addLast( "logger", new LoggingFilter() );
acceptor.getFilterChain().addLast( "codec", new ProtocolCodecFilter( new TextLineCodecFactory( Charset.forName( "UTF-8" ))));
acceptor.setHandler( new TimeServerHandler() );
acceptor.getSessionConfig().setReadBufferSize( 2048 );
acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE, 10 );
acceptor.bind( new InetSocketAddress(PORT) );
我们只是将NioSocketAcceptor改为AprSocketAcceptor,只通过这一个小改动,我们的程序就可以支持APR传输,其余的代码与之前都是相同的。
分享到:
相关推荐
- **传输层**:探讨Mina支持的不同传输协议及其工作原理,例如APR传输和串行传输等。 ### Part II - MINA Core核心 #### Chapter 8 - IoBuffer - **IoBuffer详解**:IoBuffer是Mina用于高效内存管理的数据结构,...
Mina 提供了一个抽象层,允许开发者通过 Java NIO 在多种传输层协议(如 TCP/IP 和 UDP/IP)之上构建异步、事件驱动的应用程序。 Mina 的主要特点包括: - **事件驱动模型**:利用 Java NIO 的事件机制来提高效率。...
Mina 2.0 作为最新版本,相较于 Mina 1.x,引入了更新的特性和改进。使用 Mina 2.0 开发应用之前,需要掌握 Java I/O、Java NIO 以及线程和并发库(java.util.concurrent)的知识。 Mina 架构中的几个关键组件包括 ...
Mina的核心特性之一是它的事件驱动模型,这意味着应用程序可以通过监听特定事件来处理网络通信。这种模式非常适合构建高并发、低延迟的应用程序。Mina通过Java NIO作为底层支持,实现了高效的异步I/O操作。 #### 二...
3. **支持多种协议**:MINA 支持 TCP、UDP、APR 和串行等多种通信协议,使其在不同场景下都能发挥良好作用。 4. **过滤器扩展性**:通过过滤器机制,开发者可以方便地对消息进行预处理或后处理,从而增强应用的功能...
- **框架的可扩展性**:MINA的设计允许开发者轻松添加新的传输层协议或其他特性。 #### 5. 设计原则 - **关注点分离**:MINA遵循关注点分离的原则,将应用逻辑与协议处理分离,使开发过程更加清晰。 - **依赖反转*...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
EJB中JNDI的使用源码例子 1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...