webservice开发步骤:java
服务端开发web
—定义服务接口浏览器
—实现服务接口框架
—经过CXF、xfire、axis等框架对外发布服务ide
客户端调用url
—经过有效途径(双方沟通、UDDI查找等)获取到Webservice的信息spa
—经过wsdl生成客户端(或者服务提供方提供对应的接口jar包).net
—调用服务orm
service接口:server
- package com.ws.jaxws.sayHello.service;
- import javax.jws.WebService;
- import javax.jws.soap.SOAPBinding;
- import javax.jws.soap.SOAPBinding.Style;
- @WebService
- //@SOAPBinding(style=Style.RPC)
- public interface SayHelloService {
- public String sayHello(String name);
- }
service接口的实现类:
- package com.ws.jaxws.sayHello.service.impl;
- import javax.jws.WebService;
- import com.ws.jaxws.sayHello.service.SayHelloService;
- @WebService(endpointInterface = "com.ws.jaxws.sayHello.service.SayHelloService", name = "sayHelloService", targetNamespace = "sayHello")
- public class SayHelloServiceImpl implements SayHelloService {
- @Override
- public String sayHello(String name) {
- // TODO Auto-generated method stub
- if("".equals(name)||name==null){
- name="nobody";
- }
- return "hello "+name;
- }
- }
客户端:
- package com.ws.jaxws.sayHello.server;
- import javax.xml.ws.Endpoint;
- import com.ws.jaxws.sayHello.service.impl.SayHelloServiceImpl;
- public class SayHelloServer {
- public static void main(String[] args) throws Throwable{
- Endpoint.publish("http://localhost:8888/sayHelloService", new SayHelloServiceImpl());
- System.out.println("SayHelloService is running....");
- Thread.sleep(5 * 60 * 1000);
- System.out.println("time out....");
- System.exit(0);
- }
- }
运行客户端代码后在浏览器输入http://localhost:8888/sayHelloServoce?wsdl,便可生成wsdl代码,以下所示:
客户端调用:
- package com.ws.jaxws.sayHello.client;
- import java.net.MalformedURLException;
- import java.net.URL;
- import javax.xml.namespace.QName;
- import javax.xml.ws.Service;
- import com.ws.jaxws.sayHello.service.SayHelloService;
- public class SayHelloClient {
- public static void main(String[] args) throws MalformedURLException {
- String url="http://localhost:8888/sayHelloService?wsdl";
- Service service=Service.create(new url), new QName("sayHello","SayHelloServiceImplService")); //得到webservice的信息
- SayHelloService sayHelloService=service.getPort(SayHelloService.class);//return a proxy
- System.out.println(sayHelloService.sayHello(null));//调用服务
- System.out.println(sayHelloService.sayHello("zhangsan"));
- }
- }
运行客户端代码,控制端输出: hello nobody hello zhangsan