Java 在CXF中解析日志主机名

Java 在CXF中解析日志主机名,java,dns,cxf,Java,Dns,Cxf,我有一个使用CXF的JavaWeb服务客户机。服务器有10多个可能的IP,这些IP通过动态dns解析。我已将jvm正确配置为不缓存dns 我的问题是,我有一个要求,我需要使用有效负载交付到的ip登录到客户端。仅记录主机名将不起作用,因为主机名到ip的分辨率不断变化。我建议从以下位置获取CXF LogginInterceptor的源: 并根据您的需要进行更新。特别是,您需要从消息中获取HttpServletREquest,并找出如何从中获取IP以添加到日志中。CXF版本与协议无关(适用于JMS或

我有一个使用CXF的JavaWeb服务客户机。服务器有10多个可能的IP,这些IP通过动态dns解析。我已将jvm正确配置为不缓存dns


我的问题是,我有一个要求,我需要使用有效负载交付到的ip登录到客户端。仅记录主机名将不起作用,因为主机名到ip的分辨率不断变化。

我建议从以下位置获取CXF LogginInterceptor的源:


并根据您的需要进行更新。特别是,您需要从消息中获取HttpServletREquest,并找出如何从中获取IP以添加到日志中。CXF版本与协议无关(适用于JMS或其他版本),因此不会执行任何需要HttpServletRequest的HTTP特定操作。

我建议从以下位置获取CXF LogginInterceptor的源代码:


并根据您的需要进行更新。特别是,您需要从消息中获取HttpServletREquest,并找出如何从中获取IP以添加到日志中。CXF版本与协议无关(适用于JMS或其他版本),因此不执行任何需要HttpServletRequest的HTTP特定操作。

这将在服务器端,但我需要在客户端。我在我的问题中没有明确说明这一点,所以我更新了我的问题以反映这一点。抱歉搞混了!这基本上是相同的答案,但是获取LoggingOutinerCeptor的代码,从消息中获取HttpURLConnection内容,并从中获取您可以获取的内容。我最终获得HttpURLConnection,然后使用反射访问私有/受保护的成员,以获取InetAddress对象。HttpURLConnection HttpURLConnection=(HttpURLConnection)message.get(“http.connection”);使用反射进行此。。。httpUrlConnection.delegate.http.serverSocket.inetAddress感谢您的帮助!这将是在服务器端,但我需要它在客户端。我在我的问题中没有明确说明这一点,所以我更新了我的问题以反映这一点。抱歉搞混了!这基本上是相同的答案,但是获取LoggingOutinerCeptor的代码,从消息中获取HttpURLConnection内容,并从中获取您可以获取的内容。我最终获得HttpURLConnection,然后使用反射访问私有/受保护的成员,以获取InetAddress对象。HttpURLConnection HttpURLConnection=(HttpURLConnection)message.get(“http.connection”);使用反射进行此。。。httpUrlConnection.delegate.http.serverSocket.inetAddress感谢您的帮助!