1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.jboss.netty.example.objectecho;
17
18 import java.net.InetSocketAddress;
19 import java.util.concurrent.Executors;
20
21 import org.jboss.netty.bootstrap.ServerBootstrap;
22 import org.jboss.netty.channel.ChannelPipeline;
23 import org.jboss.netty.channel.ChannelPipelineFactory;
24 import org.jboss.netty.channel.Channels;
25 import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory;
26 import org.jboss.netty.example.echo.EchoServer;
27 import org.jboss.netty.handler.codec.serialization.ClassResolvers;
28 import org.jboss.netty.handler.codec.serialization.ObjectDecoder;
29 import org.jboss.netty.handler.codec.serialization.ObjectEncoder;
30
31
32
33
34 public class ObjectEchoServer {
35
36 private final int port;
37
38 public ObjectEchoServer(int port) {
39 this.port = port;
40 }
41
42 public void run() {
43
44 ServerBootstrap bootstrap = new ServerBootstrap(
45 new NioServerSocketChannelFactory(
46 Executors.newCachedThreadPool(),
47 Executors.newCachedThreadPool()));
48
49
50 bootstrap.setPipelineFactory(new ChannelPipelineFactory() {
51 public ChannelPipeline getPipeline() throws Exception {
52 return Channels.pipeline(
53 new ObjectEncoder(),
54 new ObjectDecoder(
55 ClassResolvers.cacheDisabled(getClass().getClassLoader())),
56 new ObjectEchoServerHandler());
57 }
58 });
59
60
61 bootstrap.bind(new InetSocketAddress(port));
62 }
63
64 public static void main(String[] args) throws Exception {
65 int port;
66 if (args.length > 0) {
67 port = Integer.parseInt(args[0]);
68 } else {
69 port = 8080;
70 }
71 new ObjectEchoServer(port).run();
72 }
73 }