基于JAX-WS的webService开发实例

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/li4562258fj155/article/details/54285621

最近因为工作原因接触到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 {
        //处理方法数量名称任意
	@WebMethod
	public 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);//打印返回值
	}
}
结果


项目结构



猜你喜欢

转载自blog.csdn.net/li4562258fj155/article/details/54285621