我目前正在javaEE中开发一个jax-ws服务。一切正常,我能够生成soapUI测试。但是当我访问url中的wsdl时,它不会显示复杂的类型定义。示例代码如下:
@WebService
public interface AccountWs {
@WebMethod
ActionStatus createCustomer(@WebParam(name = "customer") CustomerDto postData);
}
@WebService(serviceName = "AccountWs", endpointInterface = "org.xxx.api.ws.AccountWs")
public class AccountWsImpl implements AccountWs {
@Override
public ActionStatus createCustomer(CustomerDto postData) {
}
}
@XmlRootElement(name = "Customer")
@XmlAccessorType(XmlAccessType.FIELD)
public class CustomerDto {
private String code;
}
我的另一个问题是如何在生成的wsdl和其他属性(如枚举枚举)中添加基数?上面的代码应该生成如下内容:
<xsd:complexType name="CustomerDto">
<xsd:sequence>
<xsd:element minOccurs="0" name="code" nillable="true" type="xsd:string"/>
...
答案 0 :(得分:0)
找到我的问题的答案。具有复杂类型的完整xsd确实是自动生成的,但与通常不同的是,它写在wsdl文件中导入的另一个文件上,所以我的。所以在我的CustomerWS?wsdl文件中有一个import语句:
<wsdl:import location="http://xxx/Customer?wsdl=Customer.wsdl" namespace="http://ws.api.meveo.org/">
</wsdl:import>
它包含完整的服务定义。