在用webservice的时候,在服务端需要返回一个reponse,这个返回对象是一个复杂对象,其中包括了class A, class中有个一vector类型的属性item,但是这个item在add的时候给加的是classB,classB 有一个成员变量,String类型的。我用自动生成的wsdl文件,发现文件中没有对classB有描述,不知道是不是这个原因,在我用这个wsdl文件自动生成的客户端测试的时候,发现会报一个一场,具体的我忘记了,但是查网上应该是一个反序列化的一场,simpleDiserised 。which is NOT expected。的这个异常。但是,我在debug服务端的时候,是有数据的。并且,如果我在item中直接放String等基本类型的话,是可以正确显示数据的,没有那个异常,这个究竟是怎么回事?望高手指教。
class A
{
private Vector item;//省略方法}Class B
{
private String c;
//省略方法
}
在返回的时候我是这样构造返回对象的
B b = new B();
b.setc("dd");
Vector temp = new Vector();
temp.add(b);
A a = new A();
a.setitem(temp);
class A
{
private Vector item;//省略方法}Class B
{
private String c;
//省略方法
}
在返回的时候我是这样构造返回对象的
B b = new B();
b.setc("dd");
Vector temp = new Vector();
temp.add(b);
A a = new A();
a.setitem(temp);
不知道自动生成的wsdl文件中ClassA是怎么描述的?
如果wsdl文件中没有ClassB的类型的话,根据此wsdl文件生成的客户端中是不会生成ClassB的类型的,因此客户端在获得返回对象的时候,不知道如何对数据进行反序列化,也就不能正常地转化成相应的对象了。