Проблема Serviceclient с вызовом операций, которые имеют расширенные классы в качестве параметров

Проблема Serviceclient с вызовом операций, которые имеют расширенные классы в качестве параметров

У меня есть операционный ввод, который имеет расширенный класс xsd: shema

SOAPFactory fac = OMAbstractFactory.getSOAP11Factory(); Конверт SOAPEnvelope = fac.getDefaultEnvelope(); OMNamespace omNs = fac.createOMNamespace("http://impl.service.mobile.boerse.com/", "impl"); // // создание полезной нагрузки OMElement method = fac.createOMElement("getIndexData", omNs); Значение OMElement = fac.createOMElement("arg0.deviceType", omNs); значение.setText("1"); метод.addChild (значение); OMElement value2 = fac.createOMElement("arg0.identificationID", omNs); значение2.setText("1"); метод.addChild (значение2); OMElement value4 = fac.createOMElement("arg0.name", omNs); значение4.setText("1"); метод.addChild (значение4); OMElement value3 = fac.createOMElement("arg1", omNs); значение3.setText("1"); метод.addChild (значение3); конверт.getBody().addChild(метод);

где не так


person user2412525    schedule 28.03.2011    source источник


Ответы (2)


если у вас есть расширенный паремент класса, такой как operationname.anotherclass.paremeter

сначала создайте другой класс OMElement после создания пареметра OMElement и добавьте пареметр anatherclass

person user2412525    schedule 29.03.2011

Я решил проблему:

SOAPFactory fac = OMAbstractFactory.getSOAP11Factory();
SOAPEnvelope envelope = fac.getDefaultEnvelope();
OMNamespace omNs = fac.createOMNamespace("http://impl.service.mobile.boerse.com/", "tns");
// // creating the payload
OMElement method = fac.createOMElement("getIndexData", omNs);
OMElement arg0 = fac.createOMElement(new QName("arg0"));
OMElement value = fac.createOMElement(new QName("deviceType"));
value.setText("1");
arg0.addChild(value);
OMElement value2 = fac.createOMElement(new QName("identificationID"));
value2.setText("1");
arg0.addChild(value2);
OMElement value4 = fac.createOMElement(new QName("name"));
value4.setText("1");
arg0.addChild(value4);
OMElement arg1 = fac.createOMElement(new QName("arg1"));
arg1.setText("1");
method.addChild(arg0);
method.addChild(arg1);
envelope.getBody().addChild(method);
return envelope;
person user2412525    schedule 28.03.2011