Удалите теги xml: ns из ответа веб-службы (axis2) - PullRequest
0 голосов
/ 28 октября 2010

У меня есть webserivce, развернутый с помощью axis2.Метод класса обслуживания возвращает строку.

public String getXML () {return "Hello ...";}

и служба настроена следующим образом

<operation name="getXML">
            <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
                class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
        </operation>

, когда я вызываю эту службу из браузера (RESTful) Я получаю такой ответ

<ns:getXMLResponse xmlns:ns="http://service.drugservice.xyz.com"><ns:return>&lt;response>Hello...&lt;/response></ns:return></ns:getXMLResponse>

Я не хочу xml: ns вокруг строки ответа.Как мне это сделать?Я хочу видеть ответ как

<reponse>Hello...</response>

1 Ответ

0 голосов
/ 02 ноября 2010

Для этого вы должны использовать клиентский API axis2. Как то так

RPCServiceClient serviceClient = null;

            try {
                serviceClient = new RPCServiceClient();
            } catch (AxisFault e) {
                throw e;
            }

            try {
                EndpointReference targetEPR = new EndpointReference("http://localhost/ws/services/drugService");

                // Authorizing access to the url
                QName action = new QName("http://service.drugservice.xyz.com", "getPricingImagesData");

                Options options = serviceClient.getOptions();
                options.setTo(targetEPR);
                Object obj[] = new Object[] {"3885"};
                OMElement responseObject = serviceClient.invokeBlocking(action,obj);
                String response = responseObject.getFirstElement().getText();

                System.out.println(response);
            } catch (AxisFault e) {
                throw e;
            } finally {
                try {
                    serviceClient.cleanup();
                } catch (AxisFault e) {
                    // do nothing
                }
                try {
                    serviceClient.cleanupTransport();
                } catch (AxisFault e) {
                    // do nothing
                }
            }
...