WebService应用--使用java开发WebService程序

时间:2023-03-10 01:04:37
WebService应用--使用java开发WebService程序

使用Eclipse开发第一个WebService程序,本示例采用的工具为Spring-Tool-Suite,和Eclipse没有本质的区别,开发环境jdk1.7

一、开发步骤:

1.新建名为WebService项目

WebService应用--使用java开发WebService程序

新建HelloService类,放在com.test.webservice包下

WebService应用--使用java开发WebService程序

下面进行服务端程序的编写:

 package com.test.webservice;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
//加入WebService注解,注意包的名字不要引用错了
@WebService
public class HelloService {
/**
* 该方法共客户端调用,返回字符串
* @param name
* @return
* @return String
*/
public String getValue(String name){
return "Hello"+name;
}
/**
* main方法用来发布服务端到localhost本地,第二个参数为创建的本地对象
* @param args
* @return void
*/
public static void main(String[] args) {
Endpoint.publish("http://localhost:1008/service/serviceHello", new HelloService());
System.out.println("发布成功!");
}
}

运行,对该类进行编译,结果如下:

WebService应用--使用java开发WebService程序

浏览器中输入:http://localhost:1008/service/serviceHello?wsdl,可以看到一下信息,说明编译成功!

WebService应用--使用java开发WebService程序

2.接下来生成客户端

2.1生成客户端程序可以新建另外一个WebService项目,也可以在原有的项目基础上新建一个包,为方便这里采用第二种方法:新建名为client的包

WebService应用--使用java开发WebService程序

2.2打开命令提示窗口执行生成命令。

格式:wsimport -s "src目录" -p “生成类所在包名” -keep “wsdl发布地址”

示例:

C:\Users\wangsj>wsimport -s E:\\workingFoilder\\projectSpace\\webservice\\src -p com.test.webservice.client -keep http://localhost:1008/service/serviceHello?wsdl

说明:

1)"src目录"地址不可含空格

2)“wsdl发布地址”不要漏了“?wsdl”

WebService应用--使用java开发WebService程序

没有报错,说明编译成功!刷新项目可一看到生成了客户端响应的类:

WebService应用--使用java开发WebService程序

3、新建测试类,进行测试

 package com.test.webservice.test;
//注意,包名不能引用错了
import com.test.webservice.client.HelloService;
import com.test.webservice.client.HelloServiceService;
public class Test { public static void main(String[] args) {
//初始化对象并获得端口
HelloService sh=new HelloServiceService().getHelloServicePort();
//调用服务端方法
String name=sh.getValue(" WebService");
System.out.println(name);
} }

运行可以看到运行结果,证明第一个WebService程序创建成功!

WebService应用--使用java开发WebService程序

四、总结

1、如果运行过程中出现异常例如:runtime modeler error: Wrapper class com.hyan.service.jaxws.GetValue is not found. Have you run APT to generate them?,说明当前JDK版本过低,建议升级到1.7版本再试。

2、如果路径写错,或者路径中含有空格,则会报一下错误,我在写的时候就写错了,所以写路径的时候一定要认真

WebService应用--使用java开发WebService程序

3、末尾的wsdl一定不要丢。