最近因为工作原因接触到webService,所以记录下开发中碰到的问题,方便自己以后复习,顺便发扬一下开源精神。刚刚接触webServie如果有什么错误欢迎大家指正。
本地环境:myEclipse10.6 tomcat7 JDK7 jaxws-ri-2.2.10
第一步:创建一个基于JAX-WS的webService工程
如果原先拥有正式项目也可以直接使用原有项目实现webService接口
第二步:引用库
引用myEclipse libray中的JAX-WS 2.1 Runtime Libraries(Project Metro 1.1)和JAX-WS 2.1 APILibraries
不知道为什么有些myEclipse中却无法找到这两个库,其中就包括我。
解决办法:下载jaxws-ri,将lib目录下的jar包全部复制到项目中lib目录下。
下载地址:https://jax-ws.java.net/
第三步:创建测试接口
package com.demo.webservice;import javax.jws.WebMethod; import javax.jws.WebService;@WebService public class Test {//处理方法数量名称任意 @WebMethodpublic String test1(String str){return "测试1接收参数:" + str;} }
第四步:在WEB-INF目录下创建sun-jaxws.xml文件
<?xml version = "1.0"?> <endpoints version="2.0"xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"><!-- webService接口配置参数 name名称 implementation实现接口的类 url请求此接口的地址 --><endpoint name="test1"implementation="com.webservice.Test"url-pattern="/test1"></endpoint></endpoints>
第五步:修改web.xml在web.xml中新增以下配置
<!-- 监听器 --><listener><listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class></listener><servlet><servlet-name>test1</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>test1</servlet-name> <url-pattern>/test1</url-pattern><!-- select请求地址 就是在sun-jaxwx.xml配置的url --> </servlet-mapping>
项目结构:
第六步:测试
发布项目到tomcat中,启动tomcat。
打开浏览器输入地址:http://localhost:8080/webService/test1?wsdl
如果出现下面这种页面说明webService已经发布成功
第七步:编写webService客户端
1.创建新的Web Project项目webServiceClient
2.使用myEclipse工具创建webService客户端
3.选择你新建的项目webServiceClient(新项目名称) 点击next
4.输入webService服务端地址,就是刚刚在浏览器输入的地址,点击next
5.等待一会儿,继续点击next
3.编写测试类
package com.demo.test;import com.demo.webservice.Test; import com.demo.webservice.TestService;public class ClinetTest {public static void main(String[] args) {TestService service = new TestService();//根据接口的名称改变Test testPort = service.getTestPort();String param = "测试1参数-你好!";//请求参数String result = testPort.test1(param);//请求System.out.println(result);//打印返回值 } }
结果
项目结构