webService的学习基础
当前拥有的环境是:eclipse+tomcat。还需要jaxws-ri.zip里面的jar。 tomcat导入开发webservice需要的开发包: (1)jaxws-ri.zip解压里面的lib文件夹到tomcat根目录中的shared文件夹下(没有就新建一个) (2)修改apache-tomcat-7.0.42/conf/catalina.properties这个文件。增加shared.loader=后面的内容为shared.loader=${catalina.home}/shared/lib/*.jar,${catalina.home}/shared/lib ?。 编写项目: 新建一个javaee项目名为:webService. weatherService.java文件 package com.matrix.service; import javax.jws.WebMethod; import javax.jws.WebService; import com.matrix.dao.WeatherDao; import com.matrix.entity.Weather; @WebService public class WeatherService { WeatherDao weatherDao = new WeatherDao(); @WebMethod public String getName() { String name = "raise"; return name; } }在客户端会生成对应的接口,方便调用
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> <listener> <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class> </listener> <servlet> <servlet-name>WeatherService</servlet-name> <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>WeatherService</servlet-name> <url-pattern>/WeatherService</url-pattern> </servlet-mapping> </web-app>会根据地址调用过滤器,调用下面的sun-jaxws.xml sun-jaxws.xml文件 <?xml version="1.0" encoding="UTF-8"?> <endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version="2.0"> <endpoint name="WeatherService" implementation="com.matrix.service.WeatherService" url-pattern="/WeatherService" /> </endpoints>ok,到这里服务器端已经配置完成。 可以通过http://localhost:80/webService/WeatherService?wsdl来访问服务器自动生成的wsdl文档。 下面为客服端开发 新建一个项目名为clientWeather 在clientWeather工作空间内新建一个bin文件夹,因为我们要根据wsdl自动生成客服端代码需要这个文件夹。 在cmd命令中进入clientWeather文件夹下,输入以下代码: E:jaxws-ribinwsimport是jaxws-ri.zip包里面的命令。最后面的是wsdl文档。 客户端clientWeather项目中会自动生成代码包com.xxxxx.service 新建test.java写测试类: test.java文件 package com.xxxxxx.test; import com.matrix.service.Weather; import com.matrix.service.WeatherServiceService; public class Test01 { public static void main(String[] args) { WeatherServiceService w = new WeatherServiceService(); String result = w.getWeatherServicePort().getName(); Weather weather =w.getWeatherServicePort().getWeatherByCode(54119); System.out.println(result+"---->"+weather.getTemp()); System.out.println(result); } } 已经实现了客户端访问服务器。 注意:如果cmd命令解析出错 可以尝试将wsdl下载到本地后将<s:element ref="s:schema" /><s:any />改成<s:any minOccurs="2" maxOccurs="2"/>。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |