0

How could i connect to my server in Apache Mina using spring mvc xml configuration?

i have this configuration in my server

<bean id="trapHandler" class="com.mina.ServerHandler" />

    <bean id="snmpCodecFilter" class="org.apache.mina.filter.codec.ProtocolCodecFilter">
        <constructor-arg>
            <bean class="org.apache.mina.filter.codec.textline.TextLineCodecFactory">
                <property name="decoderMaxLineLength" value="4000"/>
            </bean>
        </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 8000 -->
    <bean id="ioAcceptor" class="org.apache.mina.transport.socket.nio.NioSocketAcceptor"
        init-method="bind" destroy-method="unbind">
        <property name="defaultLocalAddress" value=":8000" />
        <property name="handler" ref="trapHandler" />
        <property name="filterChainBuilder" ref="filterChainBuilder" />
    </bean>

this will bind my acceptor to port 8000 right? how about in my client side? how could i connect to my server in port 8000? how could i configure my IoConnector in my xml file?

the bosxcz
  • 91
  • 3
  • 13

2 Answers2

1

Try with

<!-- The IoConnector -->
<bean id="ioConnector" class="org.apache.mina.transport.socket.nio.NioSocketConnector" init-method="connect" >
        <property name="handler" ref="yourHandler" />
        <property name="filterChainBuilder" ref="filterChainBuilder" />
        <property name="defaultRemoteAddress" value="localhost:8000" />
</bean>
Jose Luis Martin
  • 10,459
  • 1
  • 37
  • 38
0

The following xml is the configuration I'm using.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
       http://www.springframework.org/schema/beans      
       http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">

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

    <bean id="tcpAcceptor" class="org.apache.mina.transport.socket.nio.NioSocketAcceptor"
    init-method="bind" destroy-method="unbind">
        <property name="defaultLocalAddress" value=":10001" />
        <property name="handler" ref="protocolServerHandler" />
        <property name="filterChainBuilder" ref="filterChainBuilder" />
    </bean>

    <bean id="tcpAcceptor2" class="org.apache.mina.transport.socket.nio.NioSocketAcceptor"
    init-method="bind" destroy-method="unbind">
        <property name="defaultLocalAddress" value=":10002" />
        <property name="handler" ref="protocolServerHandler" />
        <property name="filterChainBuilder" ref="filterChainBuilder" />
    </bean>

    <bean id="executorFilter" class="org.apache.mina.filter.executor.ExecutorFilter" />
    <bean id="mdcInjectionFilter" class="org.apache.mina.filter.logging.MdcInjectionFilter">
        <constructor-arg value="remoteAddress" />
    </bean>

    <bean id="codecFilter" class="org.apache.mina.filter.codec.ProtocolCodecFilter">
        <constructor-arg>
            <bean class="com.xxx.xxx.protocol.codec.YourCustomeProtocolCodecFactory"></bean>
        </constructor-arg>
    </bean>

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

    <bean id="protocolServerHandler" class="com.xxx.xxx.handler.YourCustomeServerHandler" />

   <bean id="filterChainBuilder"
    class="org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder">
        <property name="filters">
            <map>
                <entry key="executor" value-ref="executorFilter" />
                <entry key="mdcInjectionFilter" value-ref="mdcInjectionFilter" />
                <entry key="codecFilter" value-ref="codecFilter" />
                <entry key="loggingFilter" value-ref="loggingFilter" />
            </map>
        </property>
    </bean>
</beans>
Liu guanghua
  • 981
  • 1
  • 9
  • 18