我正在尝试使用 gwteventservice 将数据从我的服务推送到浏览器,但我无法从与MyServiceImpl.java不同的服务执行此操作。情况如下:我有从客户端读取数据的服务DifferentService.java 。然后我有类MyServiceImpl.java,它代表 MyService.java 的服务器端(经典 gwt 项目结构)。最后,我有类CallEvent.java,它使用addEvent方法将数据发送到侦听器(gwteventservice 的东西)。当我在MyServiceImpl.java中实例化一个CallEvent类并调用正确的方法(addEvent) 消息已成功传递给侦听器。当我从DifferentService.java类调用相同的代码时,什么也没发生(没有消息传递给侦听器)。我认为这是一个典型的情况,当数据需要从某个数据提供者发送到使用 gwteventservice 的客户端时。你能帮我找出问题吗?在这种情况下,您使用哪种解决方案或方法?这是我用于数据传递的代码片段。
MsgEvent.java(代表消息携带数据——gwteventstuff)
public class MsgEvent implements Event {
public static final Domain SERVER_MESSAGE_DOMAIN = DomainFactory.getDomain("my_domain");
public String message;
public MsgEvent(){}
public MsgEvent(String message) {
this.setMessage(message);
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
CallEvent.java (gwteventstuff)
public class CallEvent extends RemoteEventServiceServlet{
public void SendData(String data){
//create the event
Event theEvent = new MsgEvent("DagaMsg");
//add the event, so clients can receive it
addEvent(MsgEvent.SERVER_MESSAGE_DOMAIN, theEvent);
}
}
不同服务.java
public class DifferentService{
...
//Reading string data from client
CallEvent ce = new CallEvent();
ce.SendData(stringData); //this code delivers nothing to a listener
...
}
MyServiceImpl.java(gwt 的东西)
public class MyServiceImpl extends RemoteEventServiceServlet implements MyService {
public void sendMessage(String message) {
CallEvent ce = new CallEvent();
ce.SendData("Data"); //this code deliver message succesfully to a listener
}
}
web.xml(gwt 和 gwteventservice 的东西)
<web-app>
<!-- Default page to serve -->
<welcome-file-list>
<welcome-file>My.html</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>MyService</servlet-name>
<servlet-class>cz.pohanka.my.server.MyServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyService</servlet-name>
<url-pattern>/cz.pohanka.my.My/MyService</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>EventService</servlet-name>
<servlet-class>de.novanic.eventservice.service.EventServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>EventService</servlet-name>
<url-pattern>/cz.pohanka.my.My/gwteventservice</url-pattern>
</servlet-mapping>
</web-app>
我希望我已经包括了所有重要的东西。我认为这个问题可能出在 web.xml 中。你怎么看。谢谢你。
帕维尔