博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java rest版简单的webservice
阅读量:7136 次
发布时间:2019-06-28

本文共 3608 字,大约阅读时间需要 12 分钟。

目前的webservice风格,rest应该是其中一种 还有种就是soap,rest是轻量级的,越来越流行。下面举一个简单例子说明下rest的用法。

1. 准备ws的jar和spring的jar,如何要连接数据的话就自行准备这边就不提供了

下载jar地址:

或者:

下载好jar之后将其放入lib下就可以了。

1. 创建个项目,名叫RestwsTest,配置spring配置文件spring-source.xml

spring-source.xml如下:

2. 配置web.xml文件

web.xml内容如下:

RestwsTest
index.jsp
contextConfigLocation
classpath:spring-source.xml
org.springframework.web.context.ContextLoaderListener
CXFServlet
org.apache.cxf.transport.servlet.CXFServlet
0
CXFServlet
/ws/*

3. 编写接口LoginService

LoginService.java如下:

package com.tp.soft.web.ws;import java.util.Map;import javax.jws.WebService;@WebServicepublic interface LoginService {    public abstract Map
doLogin(String username, String password);}

4. 编写接口的实现类LoginServiceImpl

LoginServiceImpl.java如下:

package com.tp.soft.web.ws.impl;import java.util.HashMap;import java.util.Map;import javax.ws.rs.FormParam;import javax.ws.rs.GET;import javax.ws.rs.Path;import javax.ws.rs.Produces;import javax.ws.rs.core.MediaType;import com.tp.soft.web.ws.LoginService;@Path("/loginService")public class LoginServiceImpl implements LoginService {    @POST    @Path(value = "/login")    @Produces(MediaType.APPLICATION_JSON)    public Map
doLogin( @FormParam(value = "username") String username, @FormParam(value = "password") String password) { Map
map = new HashMap
(); map.put("user", username + password); return map; }}

此时可以在本地直接通过浏览器访问地址:http://localhost:8080/RestwsTest/ws/rest/loginService /login?username="zs"&password="123"

特别注意这边访问的是通过get的 如果要能访问就要将@POST改成@GET

4. 服务器写好了,下面就来写客服端的代码,客户端主要就是获取user对象的json,代码如下:

RestClient.java如下:

package com.tp.soft.client;import java.io.IOException;import java.util.Map;import org.apache.commons.httpclient.HttpClient;import org.apache.commons.httpclient.HttpException;import org.apache.commons.httpclient.NameValuePair;import org.apache.commons.httpclient.methods.PostMethod;public class RestClient {    public static void main(String[] args) {        String url = "http://localhost:8080/RestwsTest/ws/rest/loginService/login";        HttpClient client = new HttpClient();        PostMethod method = new PostMethod(url);        NameValuePair[] data = { new NameValuePair("username", "zs"),                new NameValuePair("password", "123") };        method.setRequestBody(data);        try {            int statusCode = client.executeMethod(method);            if (statusCode == 200) {                String strJson = method.getResponseBodyAsString();                System.out.println(strJson);                // System.out.println(map.get("user").getUsername());            }        } catch (HttpException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }}

注意上面代码里面的PostMethod,在LoginServiceImpl里面的方法必须是@POST才可以,如果是@GET或者其他会报错的。

转载地址:http://ppvrl.baihongyu.com/

你可能感兴趣的文章
深入理解RunLoop
查看>>
iframe高度处理
查看>>
对Largest函数的测试
查看>>
laravel 自定义全局函数
查看>>
How to ssh
查看>>
NOIP 2002 字串变换
查看>>
jQuery选择器之层次选择器
查看>>
<input type="button">和<button>区别
查看>>
MVC模式在Java Web应用程序中的实现
查看>>
自定义值转换器
查看>>
数据库索引
查看>>
Windows Mobile开发资源站点集锦
查看>>
IT兄弟连 JavaWeb教程 Servlet表单数据
查看>>
剑法三套,程序员也能赚大钱(2) 转
查看>>
C# OpenFileDialog用法
查看>>
个人第一款小工具-批量文件重命名By Qt 5(Qt 5.2.1 + MSVC2012)
查看>>
《Java EE 开发技术与案例教程》 这是一本好书啊:简洁精辟(相见恨晚)
查看>>
十、装饰(Decorator)模式 --结构模式(Structural Pattern)
查看>>
WWDC 2013 Session笔记 - UIKit Dynamics入门
查看>>
5月7日——采用第三方页面内容,但是顶部title使用自己的
查看>>