Java EE6、EJB 3.1 和套接字客户端
Java EE6, EJB 3.1 and Socket Client
我正在开发一个需要通过套接字与任何服务器 (python) 通信的 Web 应用程序。我的 Web 应用程序将作为客户端套接字。
我阅读了一些关于 EJB 和 Socket 的备选方案。 (指示了 JCA,但对于我的简单客户端来说太过分了)
为了简化解决方案,我想创建一个 EJB @Singleton 并创建线程以在其中工作。
你有什么建议吗?
我的简单想法:
单例
@Startup
@Singleton
public class SingletonBean {
private List<EventMonitor> monitors = new ArrayList<>();
@PostConstruct
private void postConstruct() {
EventMonitor monitor = new EventMonitor("192.168.1.1", 23);
monitors.add(monitor);
monitor.start();
monitor = new EventMonitor("192.168.1.2", 23);
monitors.add(monitor);
monitor.start();
}
}
监控
public class EventMonitor extends Thread {
private String host;
private int port;
public EventMonitor(final String host, final int port) {
this.host = host;
this.port = port;
openConnection();
}
@Override
public void run() {
// read socket message and persist
// I think persist here is not a good idea, any better idea?
}
}
有什么建议吗?
感谢您的宝贵时间。
顺便说一句,答案很简单!
在这种情况下单例就足够了。
我正在开发一个需要通过套接字与任何服务器 (python) 通信的 Web 应用程序。我的 Web 应用程序将作为客户端套接字。
我阅读了一些关于 EJB 和 Socket 的备选方案。 (指示了 JCA,但对于我的简单客户端来说太过分了)
为了简化解决方案,我想创建一个 EJB @Singleton 并创建线程以在其中工作。
你有什么建议吗?
我的简单想法:
单例
@Startup
@Singleton
public class SingletonBean {
private List<EventMonitor> monitors = new ArrayList<>();
@PostConstruct
private void postConstruct() {
EventMonitor monitor = new EventMonitor("192.168.1.1", 23);
monitors.add(monitor);
monitor.start();
monitor = new EventMonitor("192.168.1.2", 23);
monitors.add(monitor);
monitor.start();
}
}
监控
public class EventMonitor extends Thread {
private String host;
private int port;
public EventMonitor(final String host, final int port) {
this.host = host;
this.port = port;
openConnection();
}
@Override
public void run() {
// read socket message and persist
// I think persist here is not a good idea, any better idea?
}
}
有什么建议吗?
感谢您的宝贵时间。
顺便说一句,答案很简单!
在这种情况下单例就足够了。