1、定义一个多态的接口
package hb; import javax.jws.WebParam; import javax.jws.WebService; @WebService public interface IHelloWorldService { public String sayHello(@WebParam(name = "name") String name); public String sayHello(@WebParam(name = "name") String name,@WebParam(name = "country") String country); }
2、定义一个对接口的实现类
package hb; import javax.jws.WebParam; import javax.jws.WebService; import javax.jws.soap.soAPBinding; import javax.jws.soap.soAPBinding.Style; @WebService @SOAPBinding(style = Style.RPC) public class HelloWorldService implements IHelloWorldService { public String sayHello(@WebParam(name = "name") String name) { return name + " say: Hello World "; } @Override public String sayHello(@WebParam(name = "name") String name,@WebParam(name = "country") String country) { System.out.println("public String sayHello(@WebParam(name = \"name\") String name," + "@WebParam(name = \"country\") String country)"); return null; } }
3、发布webservice
package hb; import org.apache.cxf.jaxws.JaxWsProxyfactorybean; public class HelloWorldServiceClient { public static void main(String[] args) { //调用WebService JaxWsProxyfactorybean factory = new JaxWsProxyfactorybean(); factory.setServiceClass(IHelloWorldService.class); factory.setAddress("http://localhost:9000/helloWorld"); IHelloWorldService service = (IHelloWorldService) factory.create(); System.out.println("[result]" + service.sayHello("huangbiao")); } }
启动服务会报错:An operation with name [{http://hb/}sayHello] already exists in this service;即该接口已经发布了,解决办法就是保证对外提供的接口名称必须是唯一的。
package hb; import javax.jws.WebParam; import javax.jws.WebService; @WebService public interface IHelloWorldService { public String sayHello(@WebParam(name = "name") String name); public String sayHello1(@WebParam(name = "name") String name,@WebParam(name = "country") String country); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。