在开始之前确认有Metro环境(访问https://metro.dev.java.net/)。 1.开发方法? (1)契约优先 从WSDL入手,生成Java类来实现服务。 (2)代码优先 从Java类入手,通过Annotation来生成WSDL和Java接口。 2.JAX-WS生成服务? (1)编写服务类文件,并编译。 (2)生成构件。 wsgen -cp . 类全限定名称 -wsdl 其中-wsdl选项:生成模式构件和服务的wsdl文件。 (4)编写发布服务类文件,并编译。 3.从WSDL创建Web服务客户机? (1)生成JAX-WS构件。 wsimport -keep -p 存放生成构件的包名 服务的wsdl文件地址 -keep:保留生成的文件 -p:存放生成构件的包名 生成内容: [1]SEI(Service Endpoint Interface) [2]服务(需要实现的服务实现类) [3]从模式生成的JAXB生成类 [4]从wsdl:fault映射的异常类(如果有) 4.JAX-WS发布服务? 实例代码片断: Endpoint.publish("http://localhost:8080/liuyf", new ServiceDemoImpl()); 5.客户端访问服务? 实例代码片断: MyService service = new MyService(); ServiceDemoImpl port = service.getServiceDemoImplPort(); 其中MyService用wsimport工具生成的。 MyService有两个构造方法: (1)public MyService() 提供默认的QName及wsdl的URL。通过wsdl,取得默认值。 (2)public MyService(URL wsdlLocation, QName serviceName) QName,wsdl的URL可以自己定义。
jax-ws实践
最新推荐文章于 2024-11-05 22:15:06 发布