Java 如何开始使用Netbeans、WSDL和JSP

Java 如何开始使用Netbeans、WSDL和JSP,java,xml,jsp,netbeans,wsdl,Java,Xml,Jsp,Netbeans,Wsdl,我正在做一个项目,我需要使用一些Web服务,比如全球天气,来添加到服务中 我正在使用NetBeans,目前我可以使用此Web服务按国家名称调用Weather+Cities: 总之,这就是我现在要做的: <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Conten

我正在做一个项目,我需要使用一些Web服务,比如全球天气,来添加到服务中

我正在使用NetBeans,目前我可以使用此Web服务按国家名称调用Weather+Cities:

总之,这就是我现在要做的:

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

天气探测器
你好,世界
结果= 澳大利亚 阿彻菲尔德机场 澳大利亚 安伯利机场 澳大利亚 爱丽丝泉机场 澳大利亚 布里斯班机场 澳大利亚 库兰加塔机场 澳大利亚 凯恩斯机场 澳大利亚 查理维尔机场 澳大利亚 格莱斯顿 澳大利亚 长距离机场 澳大利亚 伊萨阿摩山 澳大利亚 莫麦凯 澳大利亚 奥基机场 澳大利亚 普罗瑟派恩机场 澳大利亚 罗克汉普顿机场 澳大利亚 布鲁姆机场 澳大利亚 汤斯维尔阿莫酒店 澳大利亚 韦帕市 澳大利亚 戈夫机场 澳大利亚 坦南特克里克机场 澳大利亚 尤拉拉Aws 澳大利亚 阿尔伯里机场 澳大利亚 德文波特东酒店 澳大利亚 金溪Aws 澳大利亚 东赛尔机场 澳大利亚 霍巴特机场 澳大利亚 朗塞斯顿机场 澳大利亚 拉弗顿机场 澳大利亚 穆拉宾机场 澳大利亚 甘比亚山机场 澳大利亚 距离米尔迪拉机场 澳大利亚 墨尔本机场 澳大利亚 麦格理岛 澳大利亚 温亚德西部 澳大利亚 阿德莱德机场 澳大利亚 奥尔巴尼机场 澳大利亚 破山巴顿街 澳大利亚 塞杜纳机场 澳大利亚 德比 澳大利亚 达尔文机场 澳大利亚 波尔斯布鲁克皮尔斯阿莫酒店 澳大利亚 爱丁堡M.O。 澳大利亚 福里斯特机场 澳大利亚 杰拉尔顿机场 澳大利亚 卡古利博尔德阿莫酒店 澳大利亚 库努努拉库努努拉Aws 澳大利亚 利溪机场 澳大利亚 利尔月机场 澳大利亚 米卡塔拉机场 澳大利亚 黑德兰港 澳大利亚 帕拉菲尔德机场 澳大利亚 贝尔蒙特珀斯机场 澳大利亚 凯瑟琳机场 澳大利亚 乌默拉机场 澳大利亚 班克斯敦机场 澳大利亚 堪培拉 澳大利亚 莫港咖啡 澳大利亚 库马 澳大利亚 卡姆登机场 澳大利亚 杜博 澳大利亚 诺福克岛机场 澳大利亚 诺拉兰航空站 澳大利亚 里士满澳大利亚空军基地 澳大利亚 悉尼机场 澳大利亚 塔姆沃思机场 澳大利亚 瓦加机场 澳大利亚 威廉敦机场

结果= 澳大利亚墨尔本机场(YMML)37-40S 144-50E 141M 2011年9月19日-美国东部夏令时上午7:39/2011.09.19 1139 UTC 以29 MPH(25 KT)的速度从WSW(240度):0 大于7英里:0 多雲 57 F(14 C) 44 F(7 C) 62% 29.53英寸。汞柱(1000百帕) 成功
这很好,但是如何将所有XML信息返回到Java应用程序中,以便将其放在有用的地方呢

例如,如何将天气结果更改为更有用的内容,如数组?或者ArrayList并在我的应用程序中的其他地方调用它

谢谢大家!

您可以轻松地将
结果
XML转换(解析)为与web服务结果模式对应的有意义的java对象(请参见),并将其传递给应用程序中的服务。然后根据需要对java对象(列表)进行操作。

您还可以查看
该解决方案也可以应用于您的案例中(将HTML解析为Dom树,然后对其进行操作)

在旁注中,您可能想阅读BalusC关于在JSP中使用Scriptlet的回答在这种情况下我如何使用JSTL?我建议您在这里更多地了解EL。显示的唯一内容是结果,在显示JSP之前,可以很容易地将结果放入请求属性中。但是我如何获取该结果,并在应用程序中使用它呢?我更好奇的是如何从
port.getWeather(cityName,countryName)
获取结果XML字符串,并在整个应用程序中使用它,有了CSS样式等等,我来自PHP背景——我真不敢相信我必须实现一个定制类才能从一个该死的XML字符串中获得一些简单的信息?为什么Java如此复杂?难道没有一种方法可以将上面的XML转换成可以调用的数组,比如MyArray[“Weather”]??