Intellij IDEA开发WebService调用调气预报并生成Weather.xml
1.新建WebService项目
2.在example包下新建一个WeatherWebService.wsdl文件,并将http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl
中的内容复制过去
3.将其中的<a href…等中文内容删掉 ,直到idea WeatherWebService.wsdl 不报错为止
4.将 <s:element ref=“s:schema”/>下的<s:any/>改成 <s:any minOccurs=“2” maxOccurs=“2”/>
5.在WeatherWebService.wsdl上右键,webservice=>Generate JavaCode from wsdl
Intellij IDEA开发WebService调用调气预报
6.选择生成客户端client

Intellij IDEA开发WebService调用调气预报
客户端代码:

package test;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Text;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.rpc.ServiceException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.File;
import java.rmi.RemoteException;

public class WeatherClient {
    public static void main(String[] args) throws ServiceException, RemoteException, ParserConfigurationException {
        WeatherWSLocator wws = new WeatherWSLocator();
        WeatherWSSoap_PortType wwsp = wws.getWeatherWSSoap();
        String[] weather = wwsp.getWeather("北京",null);

        for (String wea : weather) {
            System.out.println(wea);
        }

        DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
        Document document = documentBuilder.newDocument();
        Element arrayOfString = document.createElement("ArrayOfStirng");  //根节点
        document.appendChild(arrayOfString);
        for (String wea : weather) {
            Element sElement = document.createElement("content");
            Text info = document.createTextNode(wea);
            arrayOfString.appendChild(sElement);
            sElement.appendChild(info);
        }
//        fileOutputStream.flush();
//        fileOutputStream.close();
        doc2XmlFile(document, "weather.xml");
    }

    private static void doc2XmlFile(Document document, String fileName) {
        try {
            TransformerFactory tFactory = TransformerFactory.newInstance();
            Transformer transformer = tFactory.newTransformer();
            //编码
            DOMSource source = new DOMSource(document);
            StreamResult result = new StreamResult(new File(fileName));
            transformer.transform(source, result);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

相关文章: