哈哈哈,很开心,今天终于会写一个简单的webService了,最近一直想写文章,但一直纠结第一篇文章应该以什么开头,思前想后写了这个
言归正传,让我们一起开启wbService之旅
前期准备:
需要的工具:jdk1.6+, Eclipse
配置环境变量:path(jdk bin 目录) , JAVA_HOME(jdk位置) , CLASSPATH(jdk bin 目录下的tools.jar)后面具体说
一. 首先创建一个Java工程(Trans)
创建类com.tff.factory.Fanctory
package com.tff.function;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
@WebService
public class Function {
//该方法就是要暴露给其他应用程序调用的方法
public String transWords(String words){
String res="";
for(char ch : words.toCharArray()){
res+="\t"+ch+"\t";
}
return res;
}
//这里我们使用main方法来发布我们的service
public static void main(String[] args){
Endpoint.publish("http://171.18.4.212:9001/Service/Function",new Function());
System.out.println("Publish Success~");
}
}
需要注意到的点:
1. 其中方法transWords()是其他项目要调用的方法
2. 切记添加@web Service注解
3.http://171.18.4.212:9001/Service/Function中:
(1). 171.18.4.212为本机IP(可以在cmd窗口中输入ipconfig查看)
二. 启动这个Java工程,如果控制台出现Public Success表示启动成功
三. 浏览器中访问http://本机ip:9001/Service/Function?wsdl就可以看到service的详细信息
如下内容,说明启动成功
注意端口9001是否被占用
四. 创建另一个Java工程(GavaMeWords)
五. 配置JAVA_HOME环境为jdk所在位置。CLASSPATH=%JAVA_HOME%\bin\tools.jar
六. 调出cmd窗口,输入:
wsimport -s 指定代码生成项目的路径 -p 生成文件的包名 -keep webservice的发布地址?wsdl 然后回车就OK了,
eg: wsimport -s E:\\software\\workspace\\GiveMeWords\\src -p com.tff.service -keep http://171.18.4.212:9001/Service/Function?wsdl
七. 刷新GiveMeWords,结果如下
八. 在GiveMeWords中测试代码能否成功,
package com.shu.test;
import com.shu.service.Function;
import com.shu.service.FunctionService;
public class Test {
public static void main(String[] args) {
Function fu=new FunctionService().getFunctionPort();
String str=fu.transWords("haha hello");
System.out.println(str);
}
}
控制台按Trans中指定的格式打印出 "haha hello"