随笔-0  评论-2  文章-61  trackbacks-0

设置 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 中的值
设置 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 输出
TCPMonitor 输出

F) 为了使该 XML 更易于阅读,可以创建一个名为 tcptrace.xml 的新文件,并将该 XML 中的内容粘贴到其中。然后,可以使用 Mozilla Firefox 或 Microsoft Internet Explorer 打开该 XML 文件,以便查看应用了相应格式的内容。

posted on 2007-04-19 16:10 comchyi 阅读(877) 评论(0)  编辑  收藏 所属分类: f. 架构.WebServices研究