环境:eclipse jdk:1.7 tomcat
1、创建一个web项目 File -- Dynamic Web Project
2、创建一个类
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
/**
* @WebService - 它是一个注解,用在类上指定将此类发布成一个ws.Endpoint
* – 此类为端点服务类,它的方法publish用于将一个已经添加了@WebService注解对象绑定到一个地址的端口上。
*/
@WebService
public classHelloWebService {
publicString HelloWord(String name){
return"Hello: "+name;
}
/**
*添加exclude=true后,HelloWord2()方法不会被发布
* @param name
* @return
*/
@WebMethod(exclude=true)
publicString HelloWord2(String name){
return"Hello: "+name;
}
publicstatic void main(String[] args) {
/**
*参数1:服务的发布地址(http://192.168.43.173/HelloWebService)
*参数2:服务的实现者
*/
Endpoint.publish("服务发布地址",new HelloWebService());
}
}
3、webService 测试
http://192.168.43.173/HelloWebService?wsdl
4、WebService的调用
1.新建一个class类,用于调用webservice。右键src,找到Web Service Client,并输入wsdl地址,选择下载代码的路径;
url: http://192.168.43.173/HelloWebService?wsdl
2.将地址上的文件下载下来(注意和发布JDK一致);
3.写调用方法调用下载下来的WebService中的java类中的方法;
示例:
import javax.xml.rpc.ServiceException;
import com.amc.tt.HelloWebService;
import com.amc.tt.HelloWebServiceServiceLocator;
/**
*
* Title: JwsClientHello
* Description: webService 客户端调用
* Version:1.0.0
* @author panchengming
*/
public class JwsClientHello {
public static void main(String[] args) {
//调用webservice
try {
HelloWebService hellow = new HelloWebServiceServiceLocator().getHelloWebServicePort();
String req = hellow.sendSMS("17610069650", "这是测试。");
System.out.println(req);
} catch (Exception e) {
e.printStackTrace();
}
}
}
参考:https://blog.youkuaiyun.com/qq_27376871/article/details/51994418
https://blog.youkuaiyun.com/qazwsxpcm/article/details/70370490
另一种方式:使用wsimport命令生成webService客户端代码实例
cmd
wsimport -s G:\JAVA_SSM\demo\src -p userwebService http://localhost:5080/openmeetings/services/UserService?wsdl
-encoding : 指定编码格式
-keep:是否生成java源文件
-d:指定.class文件的输出目录
-s:指定.java文件的输出目录
-p:定义生成类的包名,不定义的话有默认包名
-verbose:在控制台显示输出信息
-b:指定jaxws/jaxb绑定文件或额外的schemas
-extension:使用扩展来支持SOAP1.2