问题1:WebService是用来干什么的?
答:webservice是实现异构平台交互的一种技术
问题2:哪些框架可以帮助我们实现webserbice?
答:CXF Axis Metro这些框架可以帮助我们实现webservice,JAVA自己也可以帮我们实现webservice
问题3:解释下SEI和SIB两个术语
SEI:Service Endpoint Interface 服务端接口
SBI:Service implemetion Bean
问题4:如何用JAVA实现webservice?
1.1、创建接口
1.2、创建实现类
1.3、创建服务类
1.4、确立服务在网上发布的地址
1.2、公布服务
package test.my;
import javax.jws.WebService;
@WebService
public interface IMyService {
public int add(int a,int b);
public int minus(int a,int b);
}
package test.my;
import javax.jws.WebService;
@WebService(endpointInterface="test.my.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;
}
}
package test.my;
import javax.xml.ws.Endpoint;
public class MyServer {
/**
* 确定对外公布的服务地址
*/
public static void main(String[] args) {
String address = "http://localhost:6666/ns";
Endpoint.publish(address, new MyServiceImpl());
}
}
问题5如何调用
package test.my;
import java.net.MalformedURLException;
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
public class TestCilent {
public static void main(String[] args) {
URL url;
try {
url = new URL("http://localhost:6666/ns?wsdl");
QName sname = new QName("http://my.test/","MyServiceImplService");
Service service = Service.create(url, sname);
IMyService ms = service.getPort(IMyService.class);
System.out.println(ms.add(12,33));
}
catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
class test.my.MyServiceImpl has neither @WebSerivce nor @WebServiceProvider annotation
没有@WebSerivce 也没有@WebServiceProvider注解
这个告诉我们需要为我们的服务接口和实现类写上@WebSerivce注解
下节预留问题:这里客户端调用依赖于服务器端接口,这样肯定和实际不符合,实际上客户端是没有服务端这些类和接口的,那么怎么办呢,请看第二节