`
帅得被人看
  • 浏览: 18465 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

我的WebService学习第一课

 
阅读更多
  接触到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
分享到:
评论

相关推荐

    Webservice之Axis高级编程

    1. **AXIS第一课:最简单的发布AXIS的Web Service** 在这一课中,我们将学习如何快速发布一个基础的Axis Web服务。首先,你需要对Web服务的基本概念和原理有一定的了解,比如SOAP协议和WSDL(Web Services ...

    第二课:快速掌握Dubbo常规应用1

    【Dubbo快速掌握:构建远程调用应用】 Dubbo,由阿里开源的SOA服务治理框架,实际上更常被理解为一个高效的RPC(Remote Procedure Call)框架。...继续深入学习Dubbo,你将能够更好地应对分布式系统中的挑战。

    SAP BC416 课程中文自学笔记

    #### 三、第一课:介绍Web Services **本课概览**: - 介绍Web Services的基本概念,包括其定义以及Web Service提供者与请求者之间的交互方式。 **本课目标**: - 定义Web Service - 解释Web Service提供者和请求者...

    基于.NET的Web程序的设计课程教学大纲.doc

    **第一章 ASP.NET入门**:介绍ASP.NET技术,包括其优点、功能和工作原理,以及如何配置IIS。讲解Web窗体的特点、生命周期、IDE环境,如VS2005/2008下创建应用,Page对象的事件和属性,特别是Page_Load事件和...

    基于.NET的Web程序设计课程教学大纲(完整资料).doc

    **第一章 ASP.NET入门** 本章主要介绍了ASP.NET的基础知识,包括其技术特点、功能、工作原理,以及如何在IIS中配置和创建ASP.NET应用程序。重点是理解ASP.NET的功能和工作原理,设置IIS虚拟目录,以及Page对象的事件...

Global site tag (gtag.js) - Google Analytics