背景:
我以前在使用Apache服务方面有过经验,但对于使用Apache发行版附带的wsdl2java工具生成服务端点接口(SEI)和服务实现,我还是有点陌生。
任务:
我目前正在致力于实现一个基于SOAP的web服务,该服务将由外部系统使用。我已经定义了消息(XSD)和WSDL文件。我尝试使用Apache中的wsdl2java工具生成SEI。SEI被正确地生成,JAXB类型作为输入参数,并将类型返回到web服务方法。
当我查看为服务实现类生成的代码时,我看到它扩展了javax.xml.ws.Service类。此外,生成了许多重载的方法,这些方法的名称与服务端点接口中的方法相同,方法名称附加了"Soap12Http“。这些方法中有几种采用了WebServiceFeature型参数。特性,而其他特性不接受任何参数。例子:
public class Query extends Service {
@WebEndpoint(name = "product_query-soap12-http")
public IQuery getProductsSoap12Http(WebServiceFeature... features) {
return super.getPort(getProductsSoap12Http, IQuery.class,features);
}
}*其中IQuery是服务端点接口
问题:
发布于 2013-03-11 13:06:57
对于1和2,答案是否定的。生成的XXXXService类在很大程度上是WSDL中各种SEI代理的工厂。wsdl中的每个端点/绑定/portType组合都应该产生一系列“getXYZPort(.)”调用Service对象返回该特定SEI的实例。
对于3,上周在cxf的工具中添加了一个-clientjar选项(尚未发布,需要最新的快照),这可能接近所需的内容。
https://stackoverflow.com/questions/15336831
复制相似问题