我的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没有语言、环境上的依赖,怎么来解决这个问题呢?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值