تستهلك خدمة ويب. NET في جافا (المترو) - XMLNode / الاستهلاك XMLDocument؟

StackOverflow https://stackoverflow.com/questions/620943

سؤال

وأنا صدئ قليلا في بلدي جافا، وهذه هي المرة الأولى لي باستخدام المترو / JAX-WS، حتى إذا كان هذا هو السؤال البكم أعتذر.

ولدي لكتابة العميل الذي يستهلك خدمة ويب .NET. لقد حصلت على الأساسيات. لقد ولدت مغلفة من WSDL، وأستطيع أن إنشاء كائن بلدي والميناء وإجراء مكالمة والحصول على استجابة.

    Widgets d = new Widgets();
    WidgetsSoap dp = d.getWidgetsSoap();
    ((BindingProvider)dp).getRequestContext(). put(javax.xml.ws.BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://actualsite/foo.asmx");

    UserGetWidgetsResponse.UserGetWidgetsResult j = dp.userGetWidgets();

وعودة القيم وخدمة ويب هي تقريبا كل XmlDocument أو XmlNode. كيف يمكنني الحصول عليها من "UserGetWidgetsResponse.UserGetWidgetsResult" ولدت wsimport إلى XML الفعلي عاد في الدعوة؟

ولدي عدد من هذه الخدمات مع مجموعة من الأساليب، لذلك أنا على أمل لإيجاد حل لا يتطلب تعديل مغلفة ولدت في أي شكل من الأشكال. أنا أيضا لم يكن لديك السيطرة على المعلومات التي يتم إرجاعها من قبل خدمات الويب.

هل كانت مفيدة؟

المحلول

ولقد وجدت حل لهذه خلال عطلة نهاية الاسبوع، ولكن لست متأكدا من انها الحل الصحيح:

    UserGetDevicesResponse.UserGetDevicesResult j = dp.userGetDevices();
    List<Object> n = j.getContent();
    if (n.size() > 0)
    {
        Node z = (Node)n.get(0);
        System.out.println(nodeToString(z));
    }

وهذا يعطيني استجابة ثيقة XML، التي ما كنت تبحث عنه. يمكنني ثم القيام بكل العمليات أريد على الشجرة لاستخراج البيانات أنا أبحث عن.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top