一、使用JDK发布webService
1.编写自己的服务类
package cn.sp.server;
import javax.jws.WebMethod;
import javax.jws.WebService;
/**
* 使用jdk发布服务,需要在类上打注解
* @author 2YSP
*
*/
@WebService
public class SayHelloService {
/**
* 1.访问修饰符必须是public
* 2.不能被static修饰
* 3.不能是final
* 4.至少要有一个可发布的方法
* @param name
* @return
*/
public String sayHello(String name){
return name+" hello";
}
@WebMethod(exclude=true)//可以发布多个服务,也可以使用该注解选择不发布此方法
public String sayGood(String name){
return name+" good";
}
}
package cn.sp.server;
import javax.xml.ws.Endpoint;
/**
* 发布服务的类
* @author 2YSP
*
*/
public class ServicePublish {
public static void main(String[] args) {
String address="http://127.0.0.1:8080/hello";//发布的地址
Endpoint.publish(address, new SayHelloService());//具体的实现类
}
}
然后,在游览器访问http://127.0.0.1:8080/hello?wsdl出现如图所示的网页表示成功
接着就可以使用命令wsimport -s . -p cn.sp.hello http://127.0.0.1:8080/hello?wsdl来获取对应的代码了。
2.导入代码并编写客户端代码。
package cn.sp.test;
import cn.sp.hello.SayHelloService;
import cn.sp.hello.SayHelloServiceService;
/**
* 调用服务的客户端
* @author 2YSP
*
*/
public class TestSayHelloClient {
public static void main(String[] args) {
//创建服务访问点集合
SayHelloServiceService sh = new SayHelloServiceService();
//根据服务访问点获得绑定的类
SayHelloService service = sh.getSayHelloServicePort();
//调用服务
String result = service.sayHello("zhouyu");
System.out.println(result);
}
}
先启动发布服务类,在运行TestSayHelloClient中的main方法,结果如下。