共通サービスします。http://www.webxml.com.cn/zh_cn/support.aspx
行方不明の文書がArrayOfString.javaを使用することができます
パッケージcom.test.wes.weather、 輸入はjava.util.ArrayListの; インポートはjava.util.List; インポートjavax.xml.bind.annotation.XmlAccessType; インポートjavax.xml.bind.annotation.XmlAccessorType; 輸入javax.xml。 bind.annotation.XmlElement; インポートjavax.xml.bind.annotation.XmlType; / ** * <P>がArrayOfString複雑なJavaクラス・タイプ。 * * <P>以下、所望のコンテンツに指定されたパターンセグメントに含まれています。 * * <PRE> *&LT; complexTypeの名= "がArrayOfString"> *&LT; complexContentを> *&LT;制限ベース= "{ http://www.w3.org/2001/XMLSchema } anyTypeを"> *&LT;要素名= "文字列"タイプ= "{ http://www.w3.org/2001/XMLSchema }文字列"のmaxOccurs = "無限"のminOccurs = "0" /> *&LT; /シーケンス> *&LT。 /制限> *&LT; / complexContentを> *&LT; / complexTypeの> * </ PRE> * * * / @XmlAccessorType(XmlAccessType.FIELD) @XmlType(名 = "がArrayOfString"、propOrder = { "文字列" }) パブリック クラスがArrayOfString { @XmlElement(NULLに = 真の) 保護リストの<string> 文字列を、 / ** *文字列プロパティの値を取得します。 * * <P> *このアクセサメソッドは、ライブリストへの参照、返す *ないスナップショットを。そのためにあなたが作る任意の修正 *返されたリストは、JAXBオブジェクトの内部に存在することになります。 * <CODE>設定</ CODE>文字列プロパティのための方法がない理由です。 * * <P> *たとえば、新しいアイテムを追加するには、次のように行う: * <PRE> *のgetString()(newItem)を追加し、。 * </ PRE> * * * <P> * * * / パブリックリストの<string> のgetString(){ 場合(文字列== NULL ){ 列 = 新規のArrayList <ストリング> (); } 戻り 、この.stringと、 } }
wsimportの使用状況
用法:wsimportの[オプション] < WSDL_URI > \請求[オプション]前記 -b < パス> JAXWS / JAXBバインディングファイルを指定またはモード追加 (それぞれ< パス> 独自-bを有していなければならない) -B < jaxbOption > JAXBスキーマコンパイラにこのオプションを渡す -catalog < ファイルは> 外部実体参照のカタログファイルを解決するために、指定 支援TR9401、XCatalogおよびOASIS XMLカタログ形式を。 -d < ディレクトリ> 生成される出力ファイルの配置場所を指定 -encoding < エンコーディングを> 使用するソースファイルの文字エンコーディングを指定して 、標準に従っていない-ベンダー拡張を許可-Extension 指定された機能を。使用を拡張することができ 、アプリケーションが移植できない原因や 他の実装と相互運用することはできません -help表示ヘルプ -httpproxy:< ホスト>:< ポート> HTTPプロキシサーバ(デフォルトポート8080)を指定 -keep予約はファイルを生成し -p < PKG > パッケージターゲット -quiet wsimportの隠された出力 -sを< ディレクトリ>は、 ソースファイルの配置の場所が発生した指定 -target < バージョン> JAXWSはコード生成所与の仕様のバージョンに応じて 2.2にデフォルト値を、2.0は、2.1と2.2許容される 、例えば、2.0 JAXWS 2.0仕様は、互換性のあるコードを生成する コンパイラの出力メッセージに何をすべきかについての-verbose -version出力バージョンを情報 -wsdllocation < LOCATION > @ WebServiceClient.wsdlLocation値 -clientJar < jarファイル> アーティファクトは、jarファイルを生成し、作成し たWebサービスのWSDLメタデータを呼び出すために必要な。 JWS実装ファイルの生成スタブ-generateJWS -implDestDir < ディレクトリ>は、 生成されたJWS実装ファイルの場所を指定し -implServiceName < 名> サービス名JWS実装のローカル部分を生成 -implPortName < 名前> JWS実装の局所部分の生成されたポート名 \拡張子: -XadditionalHeadersマッピングヘッダが要求または応答メッセージに結合していないが、に結合されていない Javaメソッドパラメータ -Xauthfile次の形式に認証情報のファイル: HTTP:// usernameは:? [email protected]/stock WSDL 情報デバッグ-Xdebug出力 -Xnoアドレッシング-データバインディングは、JavaへのW3C EndpointReferenceTypeが結合を可能に コンパイルされていない-XnocompileをJavaファイル -XdisableAuthenticator WS RI-JAXが使用する無効検証手順、 検証 -Xauthfileオプションを無視する(設定している場合) WSDLを抽出する際にSSLホスト名を無効-XdisableSSLHostnameVerification \示例: wsimportのstock.wsdl -b stock.xml -b stock.xjb wsimportの-d生成http://example.org/stock?wsdl
通常の使用方法
wsimportの-encoding UTF-8 -p com.test.wes.weather -s。http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl
しかし
WeatherWS.asmxダウンファイルを最初にダウンロードしてください
そして、WeatherWS.asmxで
<S:要素REF = "S:スキーマ" /> <S:任意/>全部替换为<S:任意のminOccurs = "2" のmaxOccurs = "2" />
wsimportの-encoding UTF-8 -p com.test.wes.weather -s。WeatherWS.asmx
上記の文を実行すると、以下のコードが生成されます
package com.test.wec; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.util.List; import javax.xml.namespace.QName; import javax.xml.ws.Service; import com.test.wes.phone.MobileCodeWSSoap; import com.test.wes.weather.ArrayOfString; import com.test.wes.weather.WeatherWS; import com.test.wes.weather.WeatherWSSoap; public class ServiceClient { public static void main(String[] args) throws IOException { //创建WSDL的URL,注意不是服务地址 // URL url = new URL("http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl"); // // //创建服务名称 // //1.namespaceURI - 命名空间地址 // //2.localPart - 服务视图名 // QName qname = new QName("http://WebXml.com.cn/", "qqOnlineWebService"); // // //创建服务视图 // //参数解释: // //1.wsdlDocumentLocation - wsdl地址 // //2.serviceName - 服务名称 // Service service = Service.create(url, qname); // //获取服务实现类 //// QqOnlineWebServiceSoap qqonlineSsSoap =service.getPort(QqOnlineWebServiceSoap.class); //// //调用查询方法 //// String result = qqonlineSsSoap.qqCheckOnline("1565465"); //// System.out.println(result); WeatherWS factory = new WeatherWS(); //根据工厂创建一个WeatherWSSoap对象 WeatherWSSoap weatherWSSoap = factory.getWeatherWSSoap(); //调用WebService提供的getWeather方法获取南宁市的天气预报情况 ArrayOfString weatherInfo = weatherWSSoap.getSupportCityString("广东"); List<String> lstWeatherInfo = weatherInfo.getString(); //遍历天气预报信息 for (String s : lstWeatherInfo) { System.out.print(s+"|"); } System.out.println(); ArrayOfString weatherInfo1 = weatherWSSoap.getWeather("广州", ""); List<String> lstWeatherInfo1 = weatherInfo1.getString(); //遍历天气预报信息 for (String s : lstWeatherInfo1) { System.out.print(s+"|"); } System.out.println(); } }