接触到webservce有一段时间了,终于有机会来专门学习一下原理。
闲话不多说,第一课先来做一个简单的JAX Demo,然后再来总结一下。
服务器的建立:
1. 接口 - IMyService.java
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
@WebService
@SOAPBinding(style = Style.RPC)
public interface IMyService {
public int add(int a,int b);
public int minus(int a, int b);
}
2. 实现类 - MyServiceImpl.java
import javax.jws.WebService;
@WebService(endpointInterface="www.pintn.service.IMyService")
public class MyServiceImpl implements IMyService {
@Override
public int add(int a, int b) {
System.out.println(a + "+" + b + "=" + (a+b));
return a+b;
}
@Override
public int minus(int a, int b) {
System.out.println(a + "-" + b + "=" + (a-b));
return a-b;
}
}
3 开启服务 - MyServer.java
public class MyServer {
public static void main(String[] args) {
String address = "http://localhost:9999/ns";
Endpoint.publish(address, new MyServiceImpl());
}
}
4. 在同一个工程里建立一个简单的测试client类 - TestClient.java
public class TestClient {
public static void main(String[] args) {
try {
URL url = new URL("http://localhost:9999/ns?wsdl");
QName qname = new QName("http://service.pintn.www/","MyServiceImplService");
Service service = Service.create(url, qname);
IMyService ms = service.getPort(IMyService.class);
System.out.println(ms.add(12, 13));
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
以上是一个最简单的webservice模型了。以下是总结要点:
1. 发布服务的方法,Endpoint.publish(String address, Object implementor),包含两个参数:访问wsdl地址,实现类实例
2. 接口的定义,需要加annotation,标明是webservice接口。如:
@WebService(必加)
@SOAPBinding(style = Style.RPC) (与我的java版本有关,看视频里是不需要加的,但是自己做的时候不加会报错,留待接下来的学习中解答)
实现类也要加annotation,注明对应的webservice接口。如:
@WebService(endpointInterface="www.pintn.service.IMyService")
问题:
这个测试的client类,还是和server端在一起的。但是webservice的特点在于client与server没有语言、环境上的依赖,怎么来解决这个问题呢?

- 大小: 4.7 KB
分享到:
相关推荐
1. **AXIS第一课:最简单的发布AXIS的Web Service** 在这一课中,我们将学习如何快速发布一个基础的Axis Web服务。首先,你需要对Web服务的基本概念和原理有一定的了解,比如SOAP协议和WSDL(Web Services ...
【Dubbo快速掌握:构建远程调用应用】 Dubbo,由阿里开源的SOA服务治理框架,实际上更常被理解为一个高效的RPC(Remote Procedure Call)框架。...继续深入学习Dubbo,你将能够更好地应对分布式系统中的挑战。
#### 三、第一课:介绍Web Services **本课概览**: - 介绍Web Services的基本概念,包括其定义以及Web Service提供者与请求者之间的交互方式。 **本课目标**: - 定义Web Service - 解释Web Service提供者和请求者...
**第一章 ASP.NET入门**:介绍ASP.NET技术,包括其优点、功能和工作原理,以及如何配置IIS。讲解Web窗体的特点、生命周期、IDE环境,如VS2005/2008下创建应用,Page对象的事件和属性,特别是Page_Load事件和...
**第一章 ASP.NET入门** 本章主要介绍了ASP.NET的基础知识,包括其技术特点、功能、工作原理,以及如何在IIS中配置和创建ASP.NET应用程序。重点是理解ASP.NET的功能和工作原理,设置IIS虚拟目录,以及Page对象的事件...