webservice开发步骤:
? 服务端开发
—定义服务接口
—实现服务接口
—通过CXF、xfire、axis等框架对外发布服务
?客户端调用
—通过有效途径(双方沟通、UDDI查找等)获取到Webservice的信息
—通过wsdl生成客户端(或者服务提供方提供对应的接口jar包)
—调用服务
?
service接口:
- 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