WebService 一学就会 入门demo 图文教学

环境工具:

Eclipse 4.7.3a

jdk1.7

一:创建服务端,发布接口

创建java Project 即可

点击finish

新建包 com.webservice.server,

包里面新建类WebServiceTest.java

package com.webservice.server;

import javax.jws.WebService;
import javax.xml.ws.Endpoint;

//给用于发布的类添加注解
@WebService
public class WebServiceTest {
	/**
	 * 该方法就是服务端  可供发布的方法   供其他程序调用
	 * @param words
	 * @return
	 */
	public String showAll(String words) {
		String sl ="";
		//String.toCharArray() 该方法的作用是返回一个字符数组,该字符数组中存放了当前字符串中的所有字符
		for(char ch : words.toCharArray()) {    
			sl+="\t"+ch+"\t";
		}
		return sl;
	}
	
	/**
	 * 可以写多个方法
	 * @param name
	 * @return
	 */
	public String say(String name) {
		return "你好"+name;
	}
	
	
	//在此处通过main方法 直接发布该服务。  在工作应用中,可以将发布的代码 写在一些初始化的方法当中
	public static void main(String[] args) {
		//该语句用来发布服务端的方法,localhost指向本地,9093为端口可任意,但必须未被占用
		//第二个参数为new+用于发布的服务端类
		Endpoint.publish("http://localhost:9093/Service/wst", new WebServiceTest());
		
		System.out.println("发布成功");
	}
}

运行代码,发布成功

此时 我们可以在浏览器上访问:http://localhost:9093/Service/wst

弹出如下界面,即为正常:

 

二:生成客户端

创建一个新的java project 

点击finish

新建包com.webservice.client

然后   cmd 打开命令提示窗口  执行生成命令

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

注意:

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

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

http://localhost:9093/Service/wst?wsdl  是这种格式的   

示例:

wsimport -s E:\develop\workspace\eclispe\webservice-client\src -p com.webservice.client -keep http://localhost:9093/Service/wst?wsdl

 

命令执行成功,生成代码

刷新webservice-client项目,检查生成类

目录如下

然后编写测试类  测试发布的接口

结构:

测试类WsTest.java 代码:

package com.webservice.test;

import com.webservice.client.WebServiceTest;
import com.webservice.client.WebServiceTestService;

public class WsTest {
	public static void main(String[] args) {
		WebServiceTest ws = new WebServiceTestService().getWebServiceTestPort();
		//验证showAll()方法
		String w = ws.showAll("nihaoma");
		System.out.println(w);
		//验证say()方法
		System.out.println(ws.say("WebService"));
	}
}

执行结果 如图:

 

ok,demo到此结束。

如有不正,欢迎各位大佬批评指正。

 

 

 

最后 附上 常见错误问题汇总:

1、JDK版本过低问题

报类似如下的异常:runtime modeler error: Wrapper class com.hyan.service.jaxws.GetValue is not found. Have you run APT to generate them?


原因:JDK版本低于1.6.0_17

解决方法:调整该服务端项目所引用的JDK版本为安装的高版本JDK

 

 

2、生成命令路径含空格问题

报类似如下的异常:directory not found: G:\SVN_FILE\GB\05

原因:客户端src路径不可含有空格

解决方法:在不含空格路径的文件夹下重新创建客户端即可。

 

3、生成命令不完整问题

报类似如下的异常:[ERROR] failed.noservice=Could not find wsdl:service in the provided WSDL(s):

原因:生成命令末尾缺少“?wsdl”

解决方法:补上即可。

错误不完整的命令示例:

wsimport -s G:\\workspace\\webService\\TheClient\\src -p com.hyan.client -keep http://localhost:9001/Service/ServiceHello

正确完整的命令示例:

wsimport -s G:\\workspace\\webService\\TheClient\\src -p com.hyan.client -keep http://localhost:9001/Service/ServiceHello?wsdl

 

最后这些常见的错误  我就没有去单独截图,引用自该博客:https://blog.csdn.net/yipanbo/article/details/46516755。

在此表示感谢。

 

如果我们的博客对你有所帮助,请记得给点个赞哦~~~ 嘿嘿

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值