1.WebService 可以将应用程序转换为网络应用程序;通过使用WebService您的应用程序可以向全世界发布信息,或提供某向功能;WebService可以被其他应用程序使用。
2.基本的WebService平台是XML+HTTP,WebService使用XML来编辑解码数据,使用SOAP来传输数据;
什么是WebService
WebService,顾名思义就是基于Web的服务。它使用Web(HTTP)方式,接收和响应外部的某种请求。从而实现远程调用
1.从WebService的工作模式理解,它跟普通的Web程序(eg:ASP、JSP等)并没有本质的区别,都是基于HTTP传输协议的程序。
2.WebService所使用的数据均是基于XML格式的。目前标准的WebService在数据格式上主要采用SOAP协议。SOAP协议实际上就是一种基于XML编辑规范的广义协议
wsimport工具说明:
1.wsimport是jdk自带的,可以根据wsdl文档生成客户端调用 代码的工具,当然,无论服务器端的WebService是用什么语言写的,都将在客户端生成java代码,服务器端用什么写的并不重要
WSDL
1.WebService描述语言WSDL就是用机器能阅读的方式提供的一个正式描述文档而基于XML的语言用于描述WebService及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的。
2.WebService所使用的数据均是基于XML格式的。目前标准的WebService在数据格式上主要采用SOAP协议。SOAP协议实际上就是一种基于XML编码规范的文本协议。
3.WebService只采用HTTP POST方式传输数据,不使用GET方式;
常用参数为:
• -d<目录> - 将生成.class文件。默认参数。
• -s<目录> - 将生成.java文件。
• -p<生成的新包名> -将生成的类,放于指定的包下。
//别忘了引入webservice @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 void static main(String[] args){ Endpoint.publish("http://localhost:9001/Service/Function",new Function()); System.out.println("Publish Success~"); } }
2.在打出"Publish Success~"后,说明我们消息发布成功,不成的话,注意:1.需要JDK1.6+,2.确定服务器端口没有被占用;成功后, 在浏览器地址栏输入:http://localhost:9001/Service/Function?wsdl就可以看到该service的详细信息! 3.建立另外一个项目:GiveMeWords 关键的来了,打开cmd输入以下命令:wsimport -s src的路径 -p 完整包名 -keep webservice的发布地址 然后回车就OK了, 比如说: wsimport -s F:\\WorkBench\\Eclipse\\GiveMeWords\\src -p com.shu.service -keep http://localhost:9001/Service/Function?wsdl (如果wsimport命令失效,请检查是否把jdk配入环境变量!JAVA_HOME:JDK所在位置,CLASSPATH:%JAVA_HOME%\lib\tools.jar) 回车后,会出现: parsing WSDL... generating code... compiling code... 恭喜你,成功了,你可以刷新一下你的GiveMeWords项目后会在com.shu.service包下会有对应的WebService生成的文件! 然后调用如下: public void static main(String[] args){ Function fu =new FunctionService().getFunctionPort(); String str=fu.transWords("Let's Get Heck Out Of Here!"); //最后str就是在Trans项目下的transWords方法处理后的字符串咯! } 最后...怎么样,webservice不难吧,全靠jdk的升级呀!