0

I'm working on a project and I need to use some webservices, such as Global Weather, to add to the service..

I'm using NetBeans, and Currently I can use this Web Service to call Weather + Cities By Country Name: http://www.webservicex.net/globalweather.asmx?WSDL

Anyway, so this is what I'm doing now:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Weather Finder</title>
    </head>
    <body>
        <h1>Weather Test</h1>    <%-- start web service invocation --%><hr/>
    <%
    try {
    net.webservicex.GlobalWeather service = new net.webservicex.GlobalWeather();
    net.webservicex.GlobalWeatherSoap port = service.getGlobalWeatherSoap();
    java.lang.String countryName = "Australia";
    java.lang.String result = port.getCitiesByCountry(countryName);
    out.println("Result = "+result);
    } catch (Exception ex) {
    }
    %>
    <%-- end web service invocation --%><hr/>

       <%-- start web service invocation --%><hr/>
    <%
    try {
    net.webservicex.GlobalWeather service = new net.webservicex.GlobalWeather();
    net.webservicex.GlobalWeatherSoap port = service.getGlobalWeatherSoap();
    java.lang.String cityName = "Melbourne";
    java.lang.String countryName = "Australia";
    java.lang.String result = port.getWeather(cityName, countryName);
    out.println("Result = "+result);
    } catch (Exception ex) {}
    %>
    <%-- end web service invocation --%><hr/>

    </body>
</html>

Which Returns:

 <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Weather Finder</title>
        </head>
        <body>
            <h1>Hello World!</h1>    <hr/>
        Result = <NewDataSet>
      <Table>
        <Country>Australia</Country>
        <City>Archerfield Aerodrome</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Amberley Aerodrome</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Alice Springs Aerodrome</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Brisbane Airport M. O</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Coolangatta Airport Aws</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Cairns Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Charleville Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Gladstone</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Longreach Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Mount Isa Amo</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Mackay Mo</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Oakey Aerodrome</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Proserpine Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Rockhampton Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Broome Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Townsville Amo</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Weipa City</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Gove Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Tennant Creek Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Yulara Aws</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Albury Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Devonport East</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Goldstream Aws</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>East Sale Aerodrome</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Hobart Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Launceston Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Laverton Aerodrome</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Moorabbin Airport Aws</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Mount Gambier Aerodrome</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Mildura Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Melbourne Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
    <City>Macquarie Island</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Wynyard West</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Adelaide Airport</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Albany Airport</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Broken Hill Patton Street</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Ceduna Airport</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Derby</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Darwin Airport</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Bullsbrook Pearce Amo</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Edinburgh M. O.</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Forrest Airport</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Geraldton Airport</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Kalgoorlie Boulder Amo</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Kununurra Kununurra Aws</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Leigh Creek Airport</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Learmonth Airport</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Meekatharra Airport</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Port Hedland Pardoo</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Parafield Airport</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Belmont Perth Airport</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Katherine Aerodrome</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Woomera Aerodrome</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Bankstown Airport Aws</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Canberra</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Coffs Harbour Mo</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Cooma</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Camden Airport</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Dubbo</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Norfolk Island Airport</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Nowra Ran Air Station</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Richmond Aus-Afb</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Sydney Airport</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Tamworth Airport</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Wagga Airport</City>
  </Table>
  <Table>
    <Country>Australia</Country>
    <City>Williamtown Aerodrome</City>
  </Table>
</NewDataSet>


    <hr/>

       <hr/>
    Result = <?xml version="1.0" encoding="utf-16"?>
<CurrentWeather>
  <Location>Melbourne Airport, Australia (YMML) 37-40S 144-50E 141M</Location>
  <Time>Sep 19, 2011 - 07:39 AM EDT / 2011.09.19 1139 UTC</Time>
  <Wind> from the WSW (240 degrees) at 29 MPH (25 KT):0</Wind>
  <Visibility> greater than 7 mile(s):0</Visibility>
  <SkyConditions> mostly cloudy</SkyConditions>
  <Temperature> 57 F (14 C)</Temperature>
  <DewPoint> 44 F (7 C)</DewPoint>
  <RelativeHumidity> 62%</RelativeHumidity>
  <Pressure> 29.53 in. Hg (1000 hPa)</Pressure>
  <Status>Success</Status>
</CurrentWeather>


    <hr/>

    </body>
</html>

Which is Great, But how do I get all that XML Information back into my Java Application so I can put it somewhere useful?

For example, how to I change the Result of the Weather into something more useful like an Array? Or ArrayList and call it somewhere else in my Application.

Thank you!

Moe
  • 4,744
  • 7
  • 28
  • 37
  • On a side note, you may want to read this answer by BalusC on using scriptlets in JSP http://stackoverflow.com/questions/3177733/how-to-avoid-java-code-in-jsp-files/3180202#3180202 – Sean Sep 19 '11 at 12:18
  • How could I use JSTL in this situation? – Moe Sep 19 '11 at 23:48
  • I would suggest looking more at EL here. the only thing you display is the result, which could easily be placed in a request attribute before displaying your JSP. – Sean Sep 20 '11 at 03:01
  • But how do I take that Result, and Use it in my application? – Moe Sep 20 '11 at 14:58
  • I'm more curious into how I can take that Result XML string from `port.getWeather(cityName, countryName)` and use it throughout my Application, with CSS styling etc. – Moe Sep 20 '11 at 15:00

2 Answers2

0

You can easily transform (parse) the result XML into a meaningful java object corresponding to the schema of the web service's result (see http://java.sun.com/developer/technicalArticles/xml/mapping/), and pass it along to a service in your application. Then operate as you want on you (list of) java objects.

Saket
  • 45,521
  • 12
  • 59
  • 79
  • I come from a PHP background - I can't believe that I have to implement a custom class just to get some simple info from a damn XML string? Why is Java So Complex? Isn't there a way to convert the XML from above into an Array that can be called such as MyArray["Weather"]?? – Moe Sep 21 '11 at 05:10
0

You can also look at Reading HTML file to DOM tree using Java The solution can be applied in your case also(Parse the HTML to Dom tree and then operate on it)

Community
  • 1
  • 1
Manish
  • 3,913
  • 2
  • 29
  • 45