package mina.remote.server; import java.io.IOException; import java.net.InetSocketAddress; import java.security.GeneralSecurityException; import javax.annotation.PostConstruct; import mina.remote.ssl.BogusSslContextFactory; import org.apache.mina.filter.codec.ProtocolCodecFilter; import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory; import org.apache.mina.filter.logging.LoggingFilter; import org.apache.mina.filter.ssl.SslFilter; import org.apache.mina.transport.socket.nio.NioSocketAcceptor; public class Server { private static final int SERVER_PORT = 8111; private static boolean isSLL = true; public Server() { } //@PostConstruct public void run() throws IOException, InterruptedException, GeneralSecurityException { NioSocketAcceptor acceptor = new NioSocketAcceptor(); /**加入SSL*/ if(isSLL){ SslFilter sslFilter = new SslFilter(BogusSslContextFactory.getInstance(true)); //设置客户连接时需要验证客户端证书 sslFilter.setNeedClientAuth(true); acceptor.getFilterChain().addLast("sslFilter", sslFilter); } acceptor.getFilterChain().addLast("codec",new ProtocolCodecFilter(new ObjectSerializationCodecFactory())); acceptor.getFilterChain().addLast("logger", new LoggingFilter()); ServerHandler handler = new ServerHandler(); acceptor.setHandler(handler); acceptor.bind(new InetSocketAddress(SERVER_PORT)); System.out.println("############################### : Listening on port 8111"); } public static void main(String args[]) throws Throwable { new Server().run(); // Thread.sleep(10000); // Test.broadcastMessage(); } }