WebService学习更新中~

来源:互联网 发布:加里波利战役数据 编辑:程序博客网 时间:2024/06/01 08:13

1.Jax-ws:java api  xml webservice  入门 

SEI:Service Endpoint Interface    服务提供的接口——ICalcService

SIB:Service Implemetion Bean    实现服务的具体类——CalcServiceImpl

下面是利用jdk1.6.0_38的环境,实现简单的webService。

步骤:

服务器:

1.创建服务接口(ICalcService)

2.创建服务实现类(CalcServiceImpl)

3.创建服务发布类 (Server)

客户端:

客户端调用远程接口,访问服务。

服务器短代码:

package com.techbirds.service;  import javax.jws.WebService;  @WebService public interface ICalcService { public int add(int a,int b); public int del(int a,int b); }
package com.techbirds.service;  import javax.jws.WebService;   @WebService(endpointInterface="com.techbirds.service.ICalcService") public class CalcServiceImpl implements ICalcService {  /* (non-Javadoc)  * @see com.techbirds.service.IOneService#add(int, int)  */ @Override public int add(int a, int b) { System.out.println("a+b="+(a+b)); return a+b; }  /* (non-Javadoc)  * @see com.techbirds.service.IOneService#del(int, int)  */ @Override public int del(int a, int b) { System.out.println("a-b="+(a-b)); return a-b; }  } 
package com.techbirds.service;  import javax.xml.ws.Endpoint;  /**  * @author techbirds  *  */ public class Server {  /**  * @param args  */ public static void main(String[] args) { String address="http://localhost:8888/ns"; Endpoint.publish(address, new CalcServiceImpl());  }  }

客户端代码:

package com.techbirds.service;  import java.net.MalformedURLException; import java.net.URL;  import javax.xml.namespace.QName; import javax.xml.ws.Service;  public class Client { public static void main(String[] args) { try { URL url=new URL("http://localhost:8888/ns?wsdl"); QName sname=new QName("http://service.techbirds.com/", "CalcServiceImplService"); Service service=Service.create(url,sname); ICalcService ics=service.getPort(ICalcService.class); ics.add(1, 2); ics.del(2, 1); //System.out.println(ics.add(1, 2)); //System.out.println(ics.del(2, 1)); } catch (MalformedURLException e) { e.printStackTrace(); } } }

项目结构:

此demo的缺点在于:ICalcSercie接口必须提供给客户端,否则其不知如何使用远程服务。后续中会有改善。。

ps:在使用jdk自带实现webservice时,会遇到com.sun.xml.internal.ws.model.RuntimeModelerException异常,原因在于jdk版本不够高不支持,为此我直接下载了jdk1.6.0_38   。下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html




原创粉丝点击