保护WebLogic Server上WebServices
本文首先概述了消息完整性、消息机密性和身份验证,简短讨论了怎样通过策略注释加以实现。接着实例指导如何构建一个基本服务,添加消息完整性、机密性和授权……
为HelloWorld服务构建一个简单的客户端并进行测试
我们现在要构建一个简单的Java客户端来测试前面创建的服务。尽管能够用WebLogic Server 控制台工具测试这个服务,但最终还是要用客户端来测试其各安全性方面。
回想一下,客户端要成功地调用服务,首先必须生成客户端代理。这可通过另一个Ant脚本来完成。在WORKSPACE_DIR/WSTest文件夹中创建一个名为gen-client.xml的新文本文件,并且加入下面的内容:
| package com.test; <project default="build-client"> <taskdef name="clientgen" classname="weblogic.wsee.tools.anttasks.ClientGenTask"/> <target name="build-client"> <clientgen wsdl="HelloWorldService.wsdl" destDir="." packageName="com.test.client"/> </target> </project> |
从前面打开的命令shell窗口运行ant -buildfile gen-client.xml命令。您应该会看到一条BUILD SUCCESSFUL消息。这就生成了客户端代理。
回到WTP,刷新WSTest项目,应该能看到新生成的com.test.client包。然而,WTP会报告新生成的代理存在一个错误。要修正它,就要为项目添加webserviceclient.jar库,添加方法与添加weblogic.jar相同(webserviceclient.jar与weblogic.jar位于同一目录)。现在就可以开始编写客户端的代码了。
在WTP内的WSTest项目中创建名为com.test.client.HelloWorldClient的新java类,如下设置它的源:
| package com.test; import com.test.client.*; public class HelloWorldClient { public static void main(String[] args) throws Throwable { com.test.HelloWorldService service = new HelloWorldService_Impl(); HelloWorldPortType port = service.getHelloWorldPortTypeSoapPort(); String greeting = port.sayHello("Gary"); System.out.println("The greeting returned was: " + greeting); } } |
这个客户端非常简单,仅使用客户代理类以获得到服务的引用,然后调用其sayHello方法。
运行这段代码,会出现适当的控制台打印结果。
返回的问候是:Hello there, Gary
请注意,机关我们已经激活了TCP/IP监视器,但这个测试还不会用到它。这是因为客户端在端口7001直接找到服务器,而不是通过监视器端口7002。我们稍后将介绍怎样修改它。
现在已经构建了非常简单的Web Services和客户端,但还不具有安全性机制。下面将加以介绍。
- 本文关键词:

