首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache MINA + Spring - server没有运行

Apache MINA + Spring - server没有运行
EN

Stack Overflow用户
提问于 2013-06-28 13:37:54
回答 1查看 1.5K关注 0票数 0

我有一个Spring应用程序,我需要用Apache库实现非常简单的通信通道。

我的Spring应用程序正在运行,但是MINA服务器没有运行,在netstat中没有使用这个端口。

我遵循了本教程:http://mina.apache.org/mina-project/userguide/ch17-spring-integration/ch17-spring-integration.html

我做错什么了?

这是一个处理程序类:

代码语言:javascript
复制
public class ServerHandler extends IoHandlerAdapter {

    @Override
    public void exceptionCaught(IoSession session, Throwable cause) throws Exception {
        cause.printStackTrace();
    }

    @Override
    public void messageReceived(IoSession session, Object message) throws Exception {

        String str = message.toString();
        if (str.trim().equalsIgnoreCase("quit")) {
            session.close(true);
            return;
        }
        Date date = new Date();
        session.write(date.toString());
        System.out.println("Message written...");
    }

    @Override
    public void sessionIdle(IoSession session, IdleStatus status) throws Exception {
        System.out.println("IDLE " + session.getIdleCount(status));
    }
}

这是来自applicationContext.xml的XML配置。

代码语言:javascript
复制
<bean id="trapHandler" class="ServerHandler"></bean>

    <bean id="snmpCodecFilter" class="org.apache.mina.filter.codec.ProtocolCodecFilter">
        <constructor-arg>
            <bean class="org.apache.mina.filter.codec.textline.TextLineCodecFactory" />
        </constructor-arg>
    </bean>

    <bean id="loggingFilter" class="org.apache.mina.filter.logging.LoggingFilter" />

    <!-- The filter chain. -->
    <bean id="filterChainBuilder" class="org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder">
        <property name="filters">
            <map>
                <entry key="loggingFilter" value-ref="loggingFilter"/>
                <entry key="codecFilter" value-ref="snmpCodecFilter"/>
            </map>
        </property>
    </bean>

    <bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
        <property name="customEditors">
            <map>
                <entry key="java.net.SocketAddress">
                    <bean class="org.apache.mina.integration.beans.InetSocketAddressEditor" />
                </entry>
            </map>
        </property>
    </bean>

    <!-- The IoAcceptor which binds to port 161 -->
    <bean id="ioAcceptor" class="org.apache.mina.transport.socket.nio.NioDatagramAcceptor" init-method="bind" destroy-method="unbind">
        <!--<property name="defaultLocalAddress" value="${interface.ip_address}:${interface.communication.port}" />-->
        <property name="defaultLocalAddress" value=":6001" />
        <property name="handler" ref="trapHandler" />
        <property name="filterChainBuilder" ref="filterChainBuilder" />
    </bean>  
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-28 15:24:23

服务器正在运行,但不是在TPC上,而是在UDP上。

对于UDP协议:

代码语言:javascript
复制
  <bean id="ioAcceptor" class="org.apache.mina.transport.socket.nio.NioDatagramAcceptor" init-method="bind" destroy-method="unbind">
        <property name="defaultLocalAddress" value=":6001" />
        <property name="handler" ref="trapHandler" />
        <property name="filterChainBuilder" ref="filterChainBuilder" />
    </bean> 

对于TCP协议:

代码语言:javascript
复制
  <bean id="ioAcceptor" class="org.apache.mina.transport.socket.nio.NioSocketAcceptor" init-method="bind" destroy-method="unbind">
        <property name="defaultLocalAddress" value=":6001" />
        <property name="handler" ref="trapHandler" />
        <property name="filterChainBuilder" ref="filterChainBuilder" />
    </bean> 

不同之处在于所用受主类的类型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17366011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档