1、在自己的工程里发布webservice的步骤在自己的工程里发布webservice的步骤1. 下载axis-bin-1_4,解压2. 新建web项目MyWebServices,把解压后文件夹axis-1_4webappsaxisWEB-INFlib下的8个jar包拷贝到该项目的WebRootWEB-INFlib下。3. 修改该项目的web.xml文件加入axis监听器还有servlet的相关配置:示例代码:!DOCTYPE web-app PUBLIC -/Sun Microsystems, Inc./DTD WebApplication 2.3/EN Apache-Axis org.apac
2、he.axis.transport.http.AxisHTTPSessionListener AxisServlet org.apache.axis.transport.http.AxisServlet AdminServlet org.apache.axis.transport.http.AdminServlet 100 SOAPMonitorService org.apache.axis.monitor.SOAPMonitorService SOAPMonitorPort 5001 100 AxisServlet /servlet/AxisServlet AxisServlet *.jws
3、 AxisServlet /services/* SOAPMonitorService /SOAPMonitor 5 wsdl text/xml xsd text/xml index.jsp index.html index.jws 4. 在自己的项目中创建一个最基本的业务类:(这里编写了一简单业务:输入参数:String,返回数据:String。)示例代码:public class SayHello public String hello(String name) return 你好,+name+, axis Ver1.4 欢迎你.; 5. 在web.xml下编写server-config.
4、wsdd文件发布该业务为webservices示例代码: 说明:第一行指明了该webservices的服务名和服务类型(rpc);第二行是配置了services的scope,主要有Request,Session,Application三种第三行是配置了webservices所对应的class第四行是配置了该webservices所允许调用的方法,“*”表示所有的pubic方法都可供调用6. 把项目发布到tomcat上,下面我们调用一下。打开浏览器,在地址栏输入http:/127.0.0.1:8080/MyWebServices/services你会看到如下界面:这就表示webservices发
5、布成功了,单击wsdl查看一下对于该webservices的描述:http:/127.0.0.1:8080/MyWebServices/services/SayHello?wsdl: - - - - - - - - - - - - 说明:wsdl中描述了该webservices的方法为:hello,输入参数为name,String类型,返回参数为String类型,调用方式为rpc,和我们之前在wsdd中配置的一样。看完说明我们可以直接在浏览器中调用该webservices:在浏览器中输入:http:/127.0.0.1:8080/MyWebServices/services/SayHello?
6、method=hello&name=waiwai你会看到: - -你好,waiwai, axis Ver1.4 欢迎你. /soapenv:Envelope我们可以看到浏览器返回的是一String类型数据:你好,waiwai, axis Ver1.4 欢迎你.7. 接下来我们使用外部项目调用该webservices:创建新的项目CallWebServices,同样引入axis的8个jar包,创建调用webservices的类示例代码:import javax.xml.namespace.QName;import org.apache.axis.client.Call;import org.ap
7、ache.axis.client.Service;public class CallSayHello public static void main(String args) try String endpoint = http:/127.0.0.1:8080/MyWebServices/services/SayHello?wsdl; /webservices的wsdl的url地址 Service service = new Service(); /创建服务 Call call = (Call) service.createCall(); /创建调用 call.setTargetEndpoin
8、tAddress(endpoint); /设置调用的url地址 /call.setOperationName(hello); call.setOperationName(new QName(hello); /设置调用的方法(method) /call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING); /设置获取响应参数的格式 /call.setUseSOAPAction(true); /call.setSOAPActionURI( String result = (String)call.invoke(new Objectw
9、aiwai); /调用Webservice System.out.println(result is :+result); catch (Exception e) System.err.println(e.toString(); 执行该程序:后台输出:result is :你好,waiwai, axis Ver1.4 欢迎你.这表示webservices调用成功。8. 实际应用中webservices的例子调用天气预报的webservices:import java.io.IOException; import java.io.InputStream; import java.io.Unsup
10、portedEncodingException; import .MalformedURLException; import .URL; import .URLConnection; import java.util.ArrayList; import java.util.List; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.
11、w3c.dom.DOMException; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; /*src http:/eric- public class CallWeatherWebServices private static String SERVICES_HOST = ; private static String WEATHER_SERVICES_URL = private static String PROVINCE_CODE_URL = WEATHER_SERVICES_URL + getRegionProvince; private static String CITY_CODE_URL = WEATHER_SERVICES_URL + getSupportCityString?theRegionCode=; private static String WEATHER_QUERY_URL = WEATHER_SERVICES_URL + getWeather?theUserID=&theCityCode=; private WeatherUtil()
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1