2011-09-19 76 views
0

我工作的一个项目,我需要使用一些Web服务,如全球天气,添加到服务..如何开始使用Netbeans,WSDL和JSP

我使用NetBeans,反正 http://www.webservicex.net/globalweather.asmx?WSDL

,所以这是我现在在做什么:目前我可以用这个Web服务调用天气+城市按照国家名称

<%@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> 

返回:

<!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> 

哪一个很好,但是如何将所有的XML信息返回到我的Java应用程序中,这样我可以把它放在一个有用的地方?

例如,如何将天气的结果更改为像数组一样更有用的东西?或者ArrayList,并在我的应用程序的其他地方调用它。

谢谢!

+0

在一个侧面说明,你可能需要阅读此答案由BalusC在JSP中使用scriptlet http://stackoverflow.com/questions/3177733/how-to-avoid-java-code-in-jsp-files/3180202#3180202 – Sean

+0

我怎么能在这种情况下使用JSTL? – Moe

+0

我建议在这里更多地看EL。您显示的唯一内容就是结果,在显示您的JSP之前,可以轻松地将结果放入请求属性中。 – Sean

回答

0

您可以轻松地将result XML转换(解析)为对应于Web服务结果模式的有意义的Java对象(请参阅http://java.sun.com/developer/technicalArticles/xml/mapping/),并将它传递给应用程序中的服务。然后按照你想要的(列表)java对象进行操作。

+0

我来自PHP背景 - 我不能相信我必须实现一个自定义类才能从一个该死的XML字符串中获取一些简单的信息?为什么Java如此复杂?没有办法将上面的XML转换成可以调用的数组,例如MyArray [“Weather”]? – Moe