有人知道吗?是不是开发人员自己通过wsdl文档来注册序列化类型的?比如在一个wsdl中,有如下类型定义:
<wsdl:types>
- <schema targetNamespace="urn:JDBCSampleService" xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://http.servlet.javax" />
<import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
- <complexType name="aa12">
- <sequence>
<element name="aaa021" nillable="true" type="xsd:string" />
<element name="aaa020" nillable="true" type="xsd:string" />
</sequence>
</complexType>
</schema>
</wsdl:types>那么在客户端通过查询UDDI调用服务时,注册序列化类型是手工这样写吗?
//注册序列化类型
QName qn1 =new QName("urn:JDBCSampleService","ArrayOfAa12");
call.registerTypeMapping(AA12[].class, qn1,
new BeanSerializerFactory(AA12[].class, qn1),
new BeanDeserializerFactory(AA12[].class, qn1));
还是可以通过解析wsdl文档,动态的注册类型呢?
<wsdl:types>
- <schema targetNamespace="urn:JDBCSampleService" xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://http.servlet.javax" />
<import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
- <complexType name="aa12">
- <sequence>
<element name="aaa021" nillable="true" type="xsd:string" />
<element name="aaa020" nillable="true" type="xsd:string" />
</sequence>
</complexType>
</schema>
</wsdl:types>那么在客户端通过查询UDDI调用服务时,注册序列化类型是手工这样写吗?
//注册序列化类型
QName qn1 =new QName("urn:JDBCSampleService","ArrayOfAa12");
call.registerTypeMapping(AA12[].class, qn1,
new BeanSerializerFactory(AA12[].class, qn1),
new BeanDeserializerFactory(AA12[].class, qn1));
还是可以通过解析wsdl文档,动态的注册类型呢?
QName qn1 = new QName("urn:JDBCSampleService","aa12");
call.registerTypeMapping(AA12.class, qn1,
new BeanSerializerFactory(AA12.class, qn1),
new BeanDeserializerFactory(AA12.class, qn1));
不过没关系,就是大概这个意思。
里头有uddi4j调用juddi的范例。