CXF自动生成客户端时出现异常

CXF自动生成客户端时出现异常

问题描述:

生成代码是出现WSDLToJava Error: java.lang.IllegalArgumentException: An operation with name [{h

ttp://www.centra.com/CWS}Add] already exists in this service异常什么原因?
问题补充:
如果不是自己写的服务器怎么处理?

你看一下这个帖子:
http://www.iteye.com/topic/134360
希望对你有帮助。

[quote]
我猜想你应该是用jaxws:endpont标签来发布你的service吧?

只传递serviceBean Object给他,CXF这样会根据你的Impl类去反射,然后去生成wsdl,通过观察你的HibernateEntityDao, 他继承了HibernateGenericDao, 这个类里有重载的get方法, 跟泛型没多大关系..

这里,我有一个work around的方法. 就是不用JAX-WS API,用CXF的API:

JaxWsServerFactoryBean sf = new JaxWsServerFactoryBean();
sf.setServiceClass(CompanyService.class);
sf.setAddress("http://localhost:9001/Hello");
CompanyManager impl = new CompanyManager();
sf.setServiceBean(impl);
sf.create();

你也可以通过spring的配置,标签应该是:jaxws:server


/jaxws:server

这样的话,CXF就是通过Interface去生成你的WSDL, 而不是根据你的Impl类去生成wsdl.就不会有重载的问题,如果在你的Interface上有重载的问题,你可以加@WebMethod(operationName="")的方式来解决.

我只测过代码的,配置文件没测过,你需要看cxf的jaxws.xsd来配置..不过我记得是那样的...
[/quote]

呵呵。那你可能需要与服务提供者联系。一起解决这个问题了。 :)