我编写了一个java服务类,并基于该类创建了一个Web服务(使用eclipse Juno和Apache作为Web服务器)。我的服务方法的返回类型是ProductInfoOutput,它在内部由ProductInfo和ResponseStatus组成。但是当我在WSDL文件中看到时,我发现了两个基于ResponseStatus的对象。我不知道为什么。也许在开发时我做了,但现在ProductInfoOutput只有一个ResponseStatus实例。你能否建议我如何从WSDL中删除这个额外的对象。以下是WSDL的部分。
<complexType name="ProductInfoOutput">
<sequence>
<element name="productInfo" nillable="true" type="tns1:ProductInfo"/>
<element name="responseStatus" nillable="true" type="tns1:ResponseStatus"/>
<element name="response" nillable="true" type="tns1:ResponseStatus"/>
</sequence>
</complexType>
服务类:
ProductInfoOutput productInfoOutput;
DatabaseQueries query;
public ProductInfoOutput getProductInfo(String barcode) {
productInfoOutput=new ProductInfoOutput();
query=new DatabaseQueries();
productInfoOutput=query.retrieveSingleProductByBarcode(barcode);
return productInfoOutput;
}
答案 0 :(得分:0)
经过两天的浪费,我找到了问题的根本原因。项目中有一个server-config.wsdd文件,该文件在您第一次创建Web服务时自动创建,即使您更新业务类也不会更新。我从wsdd手动删除了该服务,并从业务类重新创建了Web服务。