设置 TCPMonitor 跟踪
我们还可以进行一项额外的操作,以检查通过网络传输的数据。WebSphere Application Server 提供了一个名为 TCPMonitor 工具,允许用户对 HTTP 消息进行跟踪。为了使用 TCPMonitor,我们将其放置在客户机和服务器之间。客户机当前直接与服务器进行交互。我们会将客户机定向到与 TCPMonitor 进行交互,而 TCPMonitor 会将通信数据转发给服务器。
使用 TCP Monitor 監視 request 及 response SOAP conent:
下載舊版 Axis library axis-bin-1_4.zip:
http://apache.seekmeup.com/ws/axis/1_4/
解壓後把 axis.jar 複製至 D:\axis2\lib 裡,
進入 D:\axis2\lib 目錄
執行 D:\axis2\lib> java -classpath axis.jar org.apache.axis.utils.tcpmon
就會彈出 TCPMonitor
A) 为了利用 TCPMonitor,我们首先必须对客户机进行修改。编辑 HelloWorldClient.java,使其与以下所示内容类似:
清单 10. HelloWorldClient.java
package mypackage;
import javax.xml.rpc.Stub;
public class HelloWorldClient {
public static void main(String[] args) throws Exception
{
HelloWorldServiceLocator hwlocator = new HelloWorldServiceLocator();
HelloWorld hw = hwlocator.getHelloWorld();
((Stub) hw)._setProperty("javax.xml.rpc.service.endpoint.address",
"http://localhost:1234/HelloWorldWAR/services/HelloWorld");
System.out.println(hw.sayHello());
}
}
|
添加了 ((Stub) hw)._setProperty("javax.xml.rpc.service.endpoint.address", "http://localhost:1234/HelloWorldWAR/services/HelloWorld");
行,以将端点更改为客户机将用来发送通信数据的目标端点。在 HelloWorldServiceLocator.java 文件中通过以下代码行指定缺省端点地址:private final java.lang.String helloWorld_address = "http://localhost:9080/HelloWorldWAR/services/HelloWorld";
请注意,我们将端口从 9080 改为了 1234。此外,我们必须导入 java.xml.rpc.Stub 类,以将 HelloWorld 实例强制转换为 Stub 对象。
B) 运行 TCPMonitor 时,务必使用与 WebSphere Application Server 对应的 Java 版本。否则,可能会接收到一个 NullPointerException。发出以下命令:
清单 11. 运行 TCPMon
"%JAVA_HOME%" -Djava.ext.dirs="%WAS_EXT_DIRS%" com.ibm.ws.webservices.engine.utils.tcpmon
|
C) 指定下列值:
清单 12. TCPMon 中的值
Listen Port - 1234
Target Hostname - localhost
Target Port # - 9080
|
其窗口应与以下所示内容类似:
图 2. 设置 TCPMonitor 中的值
接下来,单击 Add 按钮。这将配置 TCPMonitor 接收端口 1234 上的通信数据,并将其重定向到 9080。单击了 Add 按钮后,侦听器将自动运行。在 TCPMonitor 的顶部,将出现表示侦听器的选项卡。
D) 通过以下命令重新编译并调用 Web 服务:
清单 13. 运行 HelloWorldClient
"%JAVA_HOME%\bin\javac"
-extdirs "%WAS_CLASSPATH%;%WAS_EXT_DIRS%;." mypackage\*.java
"%JAVA_HOME%\bin\java"
-Djava.ext.dirs="%WAS_CLASSPATH%;%WAS_EXT_DIRS%;." mypackage.HelloWorldClient
|
E) 在 TCPMonitor 窗口中检查通信数据。SOAP 信封的内容将全部显示在一行中。Web 服务引擎为了节省空间,将避免发送换行字符。
图 3. TCPMonitor 输出
F) 为了使该 XML 更易于阅读,可以创建一个名为 tcptrace.xml 的新文件,并将该 XML 中的内容粘贴到其中。然后,可以使用 Mozilla Firefox 或 Microsoft Internet Explorer 打开该 XML 文件,以便查看应用了相应格式的内容。
posted on 2007-04-19 16:10
comchyi 阅读(877)
评论(0) 编辑 收藏 所属分类:
f. 架构.WebServices研究