Java 使用自定义处理程序进行GWT远程日志记录
我正在编写一个GWT客户端,它使用REST/Json与IIS上运行的.NET服务进行通信 我有在Java servlet和普通RPC中使用GWT的经验,我知道可以通过指定Java 使用自定义处理程序进行GWT远程日志记录,java,.net,gwt,Java,.net,Gwt,我正在编写一个GWT客户端,它使用REST/Json与IIS上运行的.NET服务进行通信 我有在Java servlet和普通RPC中使用GWT的经验,我知道可以通过指定 在.gwt.xml模块文件中。并在web.xml文件中配置servlet 我知道这个SimpleRemoteHandler使用GWT/RPC进行通信。 现在我的问题是,我是否可以编写自己的RemoteHandler来在服务器上存储消息,而不是使用GWT/RPC,而是使用RequestBuilder编写REST/JSON 关
在.gwt.xml模块文件中。并在web.xml文件中配置servlet
我知道这个SimpleRemoteHandler使用GWT/RPC进行通信。
现在我的问题是,我是否可以编写自己的RemoteHandler来在服务器上存储消息,而不是使用GWT/RPC,而是使用RequestBuilder编写REST/JSON
关于如何使用普通Java Servlet或PHP页面执行此操作的入门指南,对于了解如何在.NET中开发此服务也会有很大帮助。是的,您可以使用RequestBuilder在GWT中使用Rest服务 在.Net中创建Rest服务,并在GWT应用程序中使用它 参考资料:
应遵循的步骤:
诀窍如下: 只需创建一个扩展RemoteLogHandlerBase的类,并在必须重写的发布方法中执行您想要执行的操作
package be.gps.gwt.client.log;
import java.util.logging.LogRecord;
import com.google.gwt.logging.client.RemoteLogHandlerBase;
import com.google.gwt.user.client.Window;
public class JsonRemoteLogHandler extends RemoteLogHandlerBase
{
// =============================================================================================
/**
* Constructor.
*/
public JsonRemoteLogHandler()
{
}
// =============================================================================================
@Override
public void publish(LogRecord logRecord)
{
Window.alert("publish " + logRecord.getMessage());
//TODO send to server
}
}
然后,您必须在module.gwt.xml中配置此loghandler,如下所示:
<replace-with class="be.gps.gwt.client.log.JsonRemoteLogHandler">
<when-type-is class="com.google.gwt.logging.client.SimpleRemoteLogHandler" />
<any>
<when-property-is name="gwt.logging.enabled" value="TRUE" />
<when-property-is name="gwt.logging.simpleRemoteHandler" value="ENABLED" />
</any>
</replace-with>
我知道这一切。我想知道如何使用与GWT一起提供的simpleRemoteHandler之外的另一个系统将日志发送到服务器。这是因为simpleRemoteHandler针对java servlet工作,而我没有servlet容器。以json格式捕获您的日志,并使用这些日志点击.Net中的rest服务,这有帮助吗?我已经用其他步骤更新了答案,希望它有帮助。我想我必须深入挖掘simpleRemoteHandler的源代码,看看它是如何工作的。我真正想知道的是,这个SimpleRemoteHandler如何处理这样一个事实,即如果您执行java.util.Logger.log(),它将被发送到服务器。