我有一个客户端 - 服务器应用程序,它与存储医生,患者等的数据库进行交互。此应用程序的目的是在医生办公室设置预约。
这是我的问题:是否有某种文件/日志/类显示在客户端和服务器之间发送的所有内容。我需要尽可能多的信息,所以我可以调试。
非常感谢。
的Cristian。
答案 0 :(得分:3)
我猜你需要捕获客户端/服务器的交互。在这种情况下,请查看WireShark。它将显示客户端和服务器之间的所有网络流量,并解码HTTP和其他协议。请注意,它不是IDE或语言相关的。
然后,您可以在客户端和服务器端使用此日志文件,以全面了解正在发生的事情。
答案 1 :(得分:1)
您可以使用DriverManager.setLogWriter()为JDBC驱动程序提供日志文件来记录JDBC通信(如果我没有弄错的话,您需要在建立与数据库的任何连接之前执行此操作)
但我不知道任何会自动记录所有网络流量的库。为此,你需要像Wireshark这样的东西。
答案 2 :(得分:1)
如果这是web应用程序注册过滤器,它会将客户端的所有请求记录到某个文件中。
的web.xml:
<filter>
<filter-name>MyLogFilter</filter-name>
<filter-class>my.package.MyLogFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>MyLogFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
代码:
public class MyLogFilter implements Filter {
private static final Logger log = Logger.getLogger(MyLogFilter.class);
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
//Get the IP address of client machine.
String ipAddress = request.getRemoteAddr();
//Log the IP address and current timestamp.
log.info("IP "+ipAddress + ", Time "
+ new Date().toString());
chain.doFilter(req, res);
}
答案 3 :(得分:0)
您的解决方案是否基于NetBeans? Just Java没有,除非你使用java.util.Logger,Log4J,SLF4J或其他日志框架。
您的患者经理是开源的吗?我曾经开始研究基于NetBeans的解决方案(代号为MedBeans,后来是Paracelsus)但在我了解了Elexis之后放弃了这个想法,Elexis是一种特别在中欧德语国家流行的Eclipse方法。