使用 Eclipse 和 Java SE 6 创建独立 Web Services 应用程序,第 2 部分: Web 服务客户端应用程序
2010-02-02 00:00:00 来源:WEB开发网注意:若要在 linux 上运行,必须首先设置 JAVA_HOME;在命令行输入:set JAVA_HOME=<your/java/home>
新的 build.xml 有两个新的目标:runServer 和 runClient。您可能已经注意到,第一行中还更新了 default 目标值,使之不运行 wsimport 任务,而是运行 runClient 目标。而且,注意 runClient 对 pause 有依赖,这意味着虽然默认值为 runClient,但首先会运行 pause。pause 任务依赖于 runServer。这样便允许在客户端运行之前进行暂停,以便适当地启动服务器。所以 runServer 将首先运行。还有一点要注意的是 os 值。这个值表明将执行哪个操作系统(OS)命令,它由 Java Virtual Machine(JVM)决定。OS 是在 os.name 系统属性中设置的。修改后的 build.xml 脚本只包括 Windows 和 Linux,但是必要时可以增加适合您环境的其他操作系统,并更改 Ant <exec> 任务。
注意加粗的 <echo> 部分没有像其他行那样缩进。这是因为所有字符都会返回,包括空格字符。这意味着在 console 窗口中显示的消息将不会有前导空格(图 11)。当脚本运行时,它将显示可以从控制台运行的用于运行服务器应用程序的命令。
为了测试脚本的执行,可以对客户端应用程序作一些修改,以便可以运行它,直到退出。修改如下:
双击 SayHelloClient.java,编辑该文件,如以下清单所示:
清单 4. 修改后的 SayHelloClient.java 文件
package com.myfirst.wsClient;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.xml.ws.BindingProvider;
import com.myfirst.wsClient.SayHello;
import com.myfirst.wsClient.SayHelloService;
public class SayHelloClient {
public static void main(String[] args) {
SayHelloService shs = new SayHelloService();
SayHello sh = (SayHello) shs.getSayHelloPort();
((BindingProvider) sh )。getRequestContext()。put(
BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
"http://localhost:8080/wsServerExample");
System.out.println(((BindingProvider) sh)。toString());
String userName = null;
boolean exit = false;
while (!exit) {
System.out.print("\nPlease enter your name
(type 'quit' to exit): ");
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
try {
userName = br.readLine();
} catch (IOException e) {
System.out.println("Error reading name.");
System.exit(1);
}
if (!(exit = userName.trim()。equalsIgnoreCase("quit") ||
userName.trim()。equalsIgnoreCase("exit"))) {
System.out.println(sh.getGreeting(userName));
}
}
System.out.println("\nThank you for running the client.");
}
}
更多精彩
赞助商链接