I'm testing a dynamic client Axis 2 application. It works fine except
that one web service I'm testing with is giving me a problem. The
ServiceClient.sendReceive invocation generates the message "First
Element must contain the local name, Envelope , but found definitions".
The URL is
http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl. I've
looked at the returned XML via a sniffer and it indeed has definitions
in it.  Obviously I can't change the server side. Is there a way around
this using Axis 2 in a dynamic client?  The following code illustrates
the problem.

 

import org.apache.axiom.om.OMAbstractFactory;

import org.apache.axiom.om.OMElement;

import org.apache.axiom.om.OMFactory;

import org.apache.axis2.Constants;

import org.apache.axiom.om.OMNamespace;

import org.apache.axis2.AxisFault;

import org.apache.axis2.addressing.EndpointReference;

import org.apache.axis2.client.Options;

import org.apache.axis2.client.ServiceClient;

 

 

public class Forecasts{

        private static EndpointReference targetEPR = new
EndpointReference(

 
"http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl";);

        public static void main(String[] args) {

                try {

 

                        ServiceClient client = new ServiceClient();

                        OMFactory fac =
OMAbstractFactory.getOMFactory();

                        OMNamespace ns =
fac.createOMNamespace("http://www.weather.gov/forecasts/xml/DWMLgen/wsdl
/ndfdXML.wsdl", 

"tns");

 

                                    OMElement payload =
fac.createOMElement("LatLonListZipCode", ns);

                        OMElement value = fac.createOMElement("ZipCode",
ns);

                        value.setText("22102");

                                    payload.addChild(value);

 

                        Options options = new Options();

 
options.setTimeOutInMilliSeconds(60000);

 
options.setTransportInProtocol(Constants.TRANSPORT_HTTP);

                                    options.setTo(targetEPR);

 
options.setAction("http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndf
dXML.wsdl/LatLonListZipCode");

                                    client.setOptions(options);

                        //Blocking invocation

 

                        OMElement result = client.sendReceive(payload);

 

                        System.out.println(result.toString());

 

                } catch (AxisFault axisFault) {

                        axisFault.printStackTrace();

                }

 

        }

}

 

 

Thanks in advance,

Clifton Sothoron

LogiXML, Development Department
7900 Westpark Drive, Suite T107 |  McLean, VA 22102
(703) 752-9700  Ext. 162 | fax: (703) 773-6903
clifton.sothoro...@logixml.com <mailto:ke...@logixml.com>  |
http://www.logixml.com <blocked::blocked::http://www.logixml.com/> 

 

Reply via email to