- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想知道是否可以按照这些思路做一些事情:
1)服务器端(EJB类)
@Statefull
public class SomeEJB implements SomeEJBRemote {
@Tài nguyên
private SessionContext sessionContext;
//(...)
public void someMethod(Record record){
//(...)
//Situation that requires the server to alert all registered listeners
if(specialSituation){
sessionContext.fireEventToListeners(new SomeEvent());
}
//Do something else...
}
}
2) 客户端
//(...)
SomeEJBRemote ejb = initialContext.lookup("SomeEJBRemote");
ejb.addListener(this);
void EJBEventListener(SomeEvent event){
System.out.println("EJB server has sent an event!");
}
A) Java EE 规范中是否有任何内容允许这样做?
B) 我知道 JBoss 允许某种双向通信,但我可以像那个例子那样做吗?
C) OpenEJB(或 TOMEE)中有类似的东西吗?
câu trả lời hay nhất
在客户端中使用嵌入式 EJB 容器和 MDB 很容易做到。我们有一个例子可以做到这一点。
查看ví dụ nàycủamonitor
模块| .
此示例在 10,000 英尺处执行以下操作:
Phía máy chủ:
Khách hàng:
java.awt.SystemTray
所以这项技术的有趣之处在于它是完全事务性的——EntityManager 更新Và发送的 JMS 消息都是事务的一部分。如果数据库更新失败,则不会发送 JMS 消息。
这是该示例中 100% 的客户端代码。执行所描述的操作并不需要太多。
import javax.naming.InitialContext;
import javax.naming.NamingException;
import java.awt.AWTException;
import java.awt.Image;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.MalformedURLException;
import java.net.URL;
public class NotificationMonitor {
private static TrayIcon trayIcon;
public static void main(String[] args) throws NamingException, InterruptedException, AWTException, MalformedURLException {
addSystemTrayIcon();
// Boot the embedded EJB Container
new InitialContext();
System.out.println("Starting monitor...");
}
private static void addSystemTrayIcon() throws AWTException, MalformedURLException {
SystemTray tray = SystemTray.getSystemTray();
URL moviepng = NotificationMonitor.class.getClassLoader().getResource("movie.png");
Image image = Toolkit.getDefaultToolkit().getImage(moviepng);
ActionListener exitListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Exiting monitor...");
Hệ thống. thoát(0);
}
};
PopupMenu popup = new PopupMenu();
MenuItem defaultItem = new MenuItem("Exit");
defaultItem.addActionListener(exitListener);
popup.add(defaultItem);
trayIcon = new TrayIcon(image, "Notification Monitor", popup);
trayIcon.setImageAutoSize(true);
tray.add(trayIcon);
}
public static void showAlert(String message) {
synchronized (trayIcon) {
trayIcon.displayMessage("Alert received", message, TrayIcon.MessageType.WARNING);
}
}
}
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "notifications")})
public class NotificationsBean implements MessageListener {
public void onMessage(Message message) {
thử {
TextMessage textMessage = (TextMessage) message;
String text = textMessage.getText();
NotificationMonitor.showAlert(text);
} catch (JMSException e) {
e.printStackTrace();
}
}
}
这会配置嵌入式 EJB 容器。您也可以在代码中执行此操作。
java.naming.factory.initial=org.apache.openejb.client.LocalInitialContextFactory
Default\ JMS\ Resource\ Adapter=new://Resource?type=ActiveMQResourceAdapter
Default\ JMS\ Resource\ Adapter.BrokerXmlConfig=broker:vm://localhost
Default\ JMS\ Resource\ Adapter.ServerUrl=tcp://localhost:61616
关于java - EJB 服务器端能否向 EJB 客户端发送事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8154768/
Tôi muốn thiết lập kết nối ngang hàng giữa một số máy tính để người dùng có thể trò chuyện và trao đổi tập tin mà không cần máy chủ bên ngoài. Suy nghĩ đầu tiên của tôi như sau: Tôi đã tạo một ServerSocket trung tâm trên máy chủ mà tất cả các ứng dụng có thể kết nối.
Tôi đang xây dựng trò chơi nhiều người chơi trong Unity. Để làm điều này, tôi phải gửi một số giá trị từ máy khách đến hai hoặc nhiều máy khách được kết nối qua máy chủ. Tôi muốn xây dựng nó như một trò chơi thực sự trên máy chủ. Khách hàng sẽ sử dụng Android và dữ liệu của họ sẽ được đồng bộ hóa qua máy chủ (có thể là
Bài tập Lập trình mạng C: Tôi đang viết một ứng dụng máy chủ-máy khách TCP đơn giản có nhiệm vụ gửi tin nhắn (trong một luồng riêng cho từng máy khách) dưới dạng các chuỗi từ máy chủ đến máy khách và trên máy khách (việc này sẽ được thực hiện sau này trở thành một ứng dụng cửa hàng bảng điều khiển). Tôi gửi tin nhắn trước
Tôi đã thiết lập AWS Client VPN bằng xác thực chứng chỉ. Về cơ bản, tôi đang thiết lập hệ thống truy cập máy khách-máy khách như được mô tả trong kịch bản/ví dụ AWS này. Mọi thứ đều hoạt động tốt nếu tôi biết IP của họ.
Tôi đang phát triển một trò chơi TCP máy khách 1/máy khách 2, máy chủ (luồng) nhỏ. Trong khi cố gắng giải quyết vấn đề về độ trễ, tôi nhận ra có một lỗ hổng trong hàm transferState() của mình. Nó buộc những thông tin không cần thiết vào luồng liên lạc, gây ra tình trạng ì ạch và làm xe chạy chậm lại.
Từ tài liệu: Tuổi thọ mã thông báo có thể định cấu hình trong Azure Active Directory (Bản xem trước công khai) Nó đề cập đến "ứng dụng khách bí mật", làm mới mã thông báo
Các công cụ phát triển ứng dụng khách Apollo không thể kết nối với ứng dụng của tôi. Tôi đã chuyển connectToDevTools là true trong hàm tạo ApolloClient nhưng không có phản ứng gì. Tôi cũng đã thử cái này
Tôi muốn sử dụng ứng dụng khách kubernetes Fabric8 (java) bên trong Pod. Làm cách nào để có được ứng dụng khách kubernetes để triển khai một cụm? Tôi có thể lấy cấu hình của bất kỳ cụm nào bằng tệp kubeconfig của cụm đó
Tôi đang đọc vấn đề bảo mật với Log4j và tôi hiểu rằng sản phẩm này bị ảnh hưởng bởi lỗ hổng này. Nhưng máy khách Oracle 11.2 và 12 có bị ảnh hưởng bởi vấn đề này không? Tôi không thể tìm thấy những sản phẩm này có sử dụng bất kỳ Nhật ký nào không
Cài đặt máy chủ Eureka pom.xml 1.8 Hoxton.SR1 org.springframework.cloud spring
Tôi có thiết lập ngang hàng (máy khách/máy chủ) (qua mạng LAN cục bộ) sử dụng Netty, một khung mạng Java. Tôi sử dụng TCP/IP thô (ví dụ: không có HTTP) để liên lạc và vận chuyển. Bây giờ theo yêu cầu chúng tôi muốn chuyển tới T
Bài viết trước đã triển khai máy chủ ModbusTcp và 8 mã chức năng chính nhưng chức năng xử lý lỗi vẫn chưa được triển khai. Tuy nhiên khi test client thì mình phát hiện ra một lỗi ở bài viết trước đó là dữ liệu đã được ghi thành công và server không cần phản hồi. Việc tiếp theo cần làm là triển khai Modb
Có cách nào để chuyển đổi mảng mã hex 2D thành hình ảnh png không? Mảng trông như thế này (chỉ lớn hơn) [ [ '#FF0000', '#00FF00' ], [ '#0000FF'
Tôi mới làm quen với lập trình socket. Mỗi lần tôi chạy chương trình máy khách thì nó báo "Không thể kết nối với máy chủ". Ai có thể cho tôi biết tôi đã phạm sai lầm ở đâu không. Bất kỳ trợ giúp sẽ được đánh giá rất cao. Đây là client.c #include #include #inclu
Chúng tôi đã tạo các chương trình client.c và server.c đơn giản trong môi trường UNIX. Chúng tôi sử dụng nó để chuyển một tệp văn bản đơn giản, trước tiên hãy mở nó, sau đó đọc và gửi nó bằng cách sử dụng lệnh gọi hệ thống mở, đọc và gửi ở phía máy khách, tôi nhận được;
Khi chương trình trong câu hỏi trước của tôi phản hồi lại máy khách, nó sẽ gửi một tin nhắn được mã hóa. Khi máy khách kết nối, nó sẽ gửi một tin nhắn như "YourMessage". Bây giờ điều tôi muốn làm là khi máy khách kết nối, nó sẽ kết thúc với một số
我正在使用 C 和 putty 编写客户端/服务器程序。两个 c 文件位于同一系统上。 我目前在向客户端写回其正在使用的框架以及打印我的框架时遇到问题。它打印出 3 0 9 8,但随后开始打印 134
我正在使用 C 中的 select() 制作一个模拟快餐或其他任何东西的客户端服务器。 我有客户随机点 1-5 种“食物”。服务器每 30 秒决定一次。所有客户最喜欢的食物是什么?他为那些客户提供服务
对于单机游戏,基本的游戏循环是(来源:维基百科) while( user doesn't exit ) check for user input run AI move enemies
1、CentOS安装TortoiseSVN 复制代码 代码如下: yum install -y subversion 2、SVN客户端命令
Tôi là một lập trình viên xuất sắc, rất giỏi!