On Thu, Apr 2, 2009 at 7:04 AM, Clifton B. Sothoron Jr. <
clifton.sothoro...@logixml.com> wrote:

>  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";);
>

looks like you point to a wsdl file instead of service.

thanks,
Amila.

>         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/ndfdXML.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 <ke...@logixml.com> |
> http://www.logixml.com
>
>
>



-- 
Amila Suriarachchi
WSO2 Inc.
blog: http://amilachinthaka.blogspot.com/

Reply via email to