首先编写 Service
package service;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
/**
* 一个简单的webService demo 类,使用 @WebService 注解申明 这是一个 webService 类
*/
@WebService
public class JwsServiceDemo {
/**
* WebService 注解中的方法会被发布到服务中去
* @param Name
* @return
*/
public String helloJws(String userName) {
return " Hello dear " + userName;
}
public String helloEverybody(String userName) {
return " Hello dear " + userName;
}
/**
* 静态方法不会发布到webService 上面
* @param Name
* @return
*/
public static String helloJwsStatic(String Name) {
return " Hello dear " + Name;
}
/**
* 添加WebMethod注解 且其中exclude 且属性等于 true 的时候不会发布到服务上面去
* @param Name
* @return
*/
@WebMethod(exclude=true)
public String hellJwsMethod(String Name) {
return " Hello dear " + Name;
}
public static void main(String[] args) {
/*
* 调用javax.xml.ws.EndPoint 中的publish 来发布一个服务
* 参数 服务发布的地址,端口
* 提供服务的类
*/
Endpoint.publish("http://localhost:8084/Service", new JwsServiceDemo());
System.out.println("WebServie 服务地启动成功 ~~~");
}
}
在启动成功后可以在浏览器中输入 http://localhost:8084/Service?wsdl 。注意 ? 是英文状态
如果启动无误的话就能够后看到 Service.xml 的配置文件,其中可以看到 webService 中的方法,参数等类容
然后下载 webService 中的类 在系统中在命令行中使用 Java命令
wsimport -keep -p com.deom.webService http://localhost:8084/Service?wsdl
wsimport 中的详细类容 可以使用 wsimport -help 进行查看
导出时注意 写好包名 即com.deom.webService 保证将 .java 文件导入到编译器中的时候不会出现要修改包名的情况,如果修改包名有可能会出现错误。
写好webService 服务类,导出具体的服务端代码文件之后,就可以调用服务端的 webService 端口了。
import com.deom.webService.JwsServiceDemo;
import com.deom.webService.JwsServiceDemoService;
/**
* webSerivce 客户端简单案例
*
*/
public class DemoWebCient {
public static void main(String[] args) {
/*
* new 一个webService服务
* 用过服务的端口拿到对用的方法,每个webService 中的方法都会生成一个 对应的方法类
* 通过这个方法类再调用 webService中的方法
*/
JwsServiceDemoService jws = new JwsServiceDemoService();
JwsServiceDemo hello = jws.getJwsServiceDemoPort();
System.out.println(hello.helloJws("Bob"));
}
}
完成上述操作 并且控制带打印出 Hello dear Bob 完成了一个webService 客户端调用 服务端的操作