Проблема Serviceclient, вызывающая операции, которые имеют расширенные классы в качестве параметров - PullRequest
0 голосов
/ 28 марта 2011

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

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

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

где неверно

Ответы [ 2 ]

0 голосов
/ 29 марта 2011

если вы расширили parementer класса, такой как имя_операции.anotherclass.paremeter

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

0 голосов
/ 28 марта 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;
...