2013-06-28 6 views
0

Spring 어플리케이션이 있으며 Apache MINA 라이브러리와 매우 간단한 통신 채널을 구현해야합니다.Apache MINA + Spring 서버가 실행되고 있지 않습니다.

My Spring 응용 프로그램이 실행 중이지만 MINA 서버가 실행되고 있지 않습니다. netstat에서이 포트가 사용되지 않습니다. 내가 잘못 뭐하는 거지 http://mina.apache.org/mina-project/userguide/ch17-spring-integration/ch17-spring-integration.html

:

나는이 튜토리얼을 따라?

은 핸들러 클래스입니다 :

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)); 
    } 
} 

그리고 이것은 서버가 아닌 TPC하지만 UDP에서 실행중인 applicationContext.xml

에서 XML 구성
<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> 
+0

고객 센터에 봄이 있습니까? –

답변

0

입니다. UDP 프로토콜의

:

<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 프로토콜의 :

<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> 

의 차이는 사용 채택 클래스의 타입입니다.

관련 문제