基于jdk6的WebService~JAX-WS 方法

工具:Eclipse

说明:我知道的WebService的一点点的作用,例如:天气预报,这样的一个项目,应该很庞大,并不是所有的公司都能写的起的,

          那所以呢,有的公司把天气预报做成了webService的形式的,这样,其他的企业如果想用天气预报的功能的话,不用自己写了,直接的花点钱买服务就行了。所以我测试的时候(局域网),为了展示出明显的效果,我就把服务端代码和客户端代码写在了不同的电脑上,只是为了增强效果。

随便建立一个Java-project

服务器端的代码

1:写一个接口,暴漏在外面的

package service;

//对外暴露的接口
publicinterfaceTestWebService{

 publicString getName(String name);
 
}

2:写接口的实现类

package service;

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


//name webService的名称,ServiceName:webService的服务名称
@WebService(name="wsName",serviceName="wsServiceName")
@SOAPBinding(style =SOAPBinding.Style.RPC)//可能是我的jdk的版本低吧,如果不加这个注解,会报错,因为默认的是:
           //SOAPBinding.Style.DOCUMENT
publicclassTestWebServiceImplimplementsTestWebService{

 
 publicString getName(String name){
  // TODO Auto-generated method stub
  return"你好,"+name;
 }
 /**
  * @param args
  */
 publicstaticvoid main(String[] args){
  Endpoint.publish("http://192.168.1.116:7777/wsServiceName/",newTestWebServiceImpl());
 }

}

 
 
错误图:
基于jdk6的WebService~JAX-WS 方法 - 杨阳 - 会有天使替我爱你
 

错误信息截取:Wrapper class service.jaxws.GetName is

not found. Have you run APT to generate them?

 

试运行

TestWebServiceImpl  运行这个类的main方法,这个就是打开服务的过程

在浏览器里输入网址:http://localhost:7777/wsServiceName/?wsdl 能运行出xml来就行

接下来就是看 webService的实际应用了

在另一台电脑上,也是建立一个随便的项目,我这里建立的是javaProject

基于jdk6的WebService~JAX-WS 方法 - 杨阳 - 会有天使替我爱你

 1:Test的代码:空代码,还没有十几意义

package test;

 

publicclassTest{

 publicstaticvoid main(String[] args){
   
 }

}

2:把webService的代码,引入到客户端,应用者的地方
开始 -》运行 (cmd)


 
 
我解释一下下面的这个命令
wsimport -s F:\practice\room\jdk6WSClient  -keep http://192.168.1.116:7777/wsServiceName/?wsdl

wsimport 呢就是专门,命令来获取服务器的wsdl文件并生成客户端的stub类信息

-s 是用来指定生成的 服务器端的代理类(wsimport 能打出所有的命令,并能查看,每个命令的作用)

F:\practice\room\jdk6WSClient  这个是指我的客户端电脑上的项目所在的位置

-keep 就是 keep generated files

http://192.168.1.116:7777/wsServiceName/?wsdl 这个就是服务的网址

执行这个命令后,客户端的项目,就产生了响应的代码:如下图,刷新一下项目

共生成了两个类:WsName,WsServiceName 这两个生成的原因是,人家服务器端的代码里,这样写过了

@WebService(name="wsName",serviceName="wsServiceName") 在此日志的上面,写过了

基于jdk6的WebService~JAX-WS 方法 - 杨阳 - 会有天使替我爱你
这样在Test.java 中就可以应用了
 

 

package test;

import service.WsServiceName;

 

publicclassTest{

 /**
  * @param args
  */
 publicstaticvoid main(String[] args){
  
  WsServiceName  test=newWsServiceName();
  String msg=test.getWsNamePort().getName("哎呀呀");
  System.out.println(msg);
 }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值