webservice 发布的接口不能使“多态”

原创 2013年12月04日 10:30:22

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);
}

 

接口学习,实现多态的三种方法何时使用

接口是一种规范。 只要一个类继承了一个接口,这个类就必须实现这个接口中所有的成员   为了多态。 接口不能被实例化。 也就是说,接口不能new(不能创建对象)         ...
  • u012135077
  • u012135077
  • 2015年09月08日 09:49
  • 424

WebService 四种发布方式总结

WebService 四种发布方式总结 1. CXF方式 CXF与spring搭建webservice是目前最流行的方式,但是传闻cxf与jdk1.5有些不兼容,我没有遇到过,我遇到的问题...
  • zl834205311
  • zl834205311
  • 2016年06月08日 12:03
  • 44279

javaWeb项目发布带没有接口和有接口的WebService服务

项目结构图: web.xml WebService_Web index.html index.htm index.jsp default.html ...
  • Grit_ICPC
  • Grit_ICPC
  • 2017年05月11日 20:42
  • 400

Eclipse发布WebService和调用WebService接口

一、发布WebService服务 1、整个服务端架构如下:    2、创建过程     1)web.xml             2)ws...
  • u011300819
  • u011300819
  • 2017年05月24日 10:25
  • 1133

动态生成webservice

Axis2创建WebService实例 博客分类: Java综合 WebServiceTomcatApacheWebXML    一、Axis2的下载和安装      1...
  • neutrojan
  • neutrojan
  • 2014年01月22日 14:55
  • 3971

WebService(5)_Apache CXF 服务端四种发布方式(图文详解实例)

感觉CXF的开发方式,和使用JDK原生开发,并没有什么太大的区别 注: 由于JDK或者CXK框架的版本问题,生成客户端之后,有一个类会抛出异常,原则上,可以根据提示,将第三个入参删除,并不会对调用W...
  • Simba_cheng
  • Simba_cheng
  • 2016年09月17日 20:53
  • 3565

webservice调用和发布

1. 认识webservice WebService定义: 顾名思义就是基于Web的服务。它使用Web(HTTP)方式,接收和响应外部系统的某种请求。从而实现远程调用。 Webservice理解:我们...
  • xnf1991
  • xnf1991
  • 2016年08月20日 17:34
  • 5338

maven多模块项目发布webservice

环境和目录 环境: jdk1.7.0.79+maven3.5.7+cxf+ssm; maven项目源码目录: cxf配置:首先自行配置cxf环境变量 1.applicat...
  • z469441432
  • z469441432
  • 2017年12月20日 11:05
  • 104

WebService认识二(使用Servlet搭建WebService服务)

注:在WebService认识一的基础之上
  • WJL_MGQS
  • WJL_MGQS
  • 2014年04月04日 14:53
  • 4615

webservice 测试接口方法

1.了解url : http://localhost:8080/test/services/user?wsdl; 2.新建web service 项目 Test,启动接口; 3.在项目Test...
  • u011513323
  • u011513323
  • 2015年06月26日 17:20
  • 4744
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:webservice 发布的接口不能使“多态”
举报原因:
原因补充:

(最多只允许输入30个字)