java发布http服务_java通过amox-http发布http服务

本文介绍了一款名为amox-http的工具,它简化了Java中发布HTTP服务的过程。通过结合Spring,该工具使得创建和调用HTTP服务变得方便快捷,尤其适合跨平台调用。文中详细说明了如何配置和使用amox-http,包括加载所需jar包、配置web.xml和spring-http.xml文件,以及编写服务接口和实现。
摘要由CSDN通过智能技术生成

前言

做Java也有三年了,一直想自己做个东西出来,于是第一个想到的是做一个自动生成代码的工具,在添加webService服务功能时,想到再添加一个http服务功能,但java添加http服务很麻烦,由此产生的此软件,此软件是自动生成代码工具的附属工具。

我们都知道java的web项目可以对外发布webService服务和http服务,通过xfire只可以很方便的发布webService服务,但是java发布http服务一直不方便。通过java原生的servlet发布http服务可以方便其它平台调用,但是编程比较麻烦而且不太适合目前的j2ee的编程思想,此方式不太合适;通过spring的http-invorke发布的http服务,可以方便快速,但在客户端必须依赖spring本身才能调用,在移动平台火爆的今天许多移动平台原生支持http调用,此种http服务的发布方式显然也不合适;为达到目前j2ee的编程思想并且能方便快速用于其它平台的调用为此产生了本软件(amox-http),本软件可以方便快速的发布http服务,可以跨平台调用。

系统概述

(1)      本软件就是HTTP服务发布工具包;

(2)      主要功能使用本软件能方便快捷发布一个基于java的spring的HTTP服务。

(3)      工作原理:

a)         在web工程启动时,加载类com.amox.http.spring.HttpServiceSpringRegister(http服务注册类)中注册的serviceBeans(需要发布服务的类);加载时只会把服务类中加了@PathMapping的注解的方法发布成服务载入内存;

b)        用户请求时,拦截类com.amox.http.spring.HttpServiceSpringDispatcher拦截获取用户请求的路径,获取用户请求的路径;

c)         根据用户的请求路径匹配对应的服务,若存在对应服务则返回对应方法返回值,若不存在给出错误提示。

实践

提示:本软件是基于spring开发,所以要有spring包(非spring方式暂未提供,正在设计调用方式),本软件的核心是反射所以还要有一个核心jar包javassist.jar

1. 载入jar包(amox-http-1.7.jar)

http://download.csdn.net/detail/qi_w2006/4971419

2. 载入jar包(javassist.jar)

http://download.csdn.net/detail/qi_w2006/4971428

3. 配置web.xml如下:

AmoXHttpServlet

com.amox.http.spring.HttpServiceSpringDispatcher

AmoXHttpServlet

/http/*

4. 配置spring-http.xml(此文件名为spring配置文件,可自定义需要的名称)配置文件如下:

5. 编写需要发布的服务类,如下:

public interface HttpServiceDemo {

/**

* 发布GET服务

* 建议参数中不用基本类型,这样若请求中可不传此参数

* @param request 请求参数

* @param index 请求参数

* @return 服务结果

*/

public String demoGet(String request, Long index);

/**

* 发布POST服务

* 建议参数中不用基本类型,这样若请求中可不传此参数

* @param request 请求参数

* @param index 请求参数

* @return 服务结果

*/

public String demoPost(String request, Double index);

/**

* 发布GET和POST服务

* 建议参数中不用基本类型,这样若请求中可不传此参数

* @param request 请求参数

* @param index 请求参数

* @return 服务结果

*/

public String demoBoth(String request, Integer index);

}

public class HttpServiceDemoImpl implements HttpServiceDemo {

@Autowired

private HttpBmo httpBmo;

@PathMapping("/demoGetService")

public String demoGet(String request, Long index) {

return "demoGetService : " + httpBmo.demo(request, index);

}

@PathMapping(value="/demoPostService", method=RequestMethod.POST)

public String demoPost(String request, Double index) {

return "demoPostService : " + httpBmo.demo(request, index);

}

@PathMapping(value="/demoBothService", method={RequestMethod.POST, RequestMethod.GET} )

public String demoBoth(String request, Integer index) {

return "demoBothService : " + httpBmo.demo(request, index);

}

}

public interface HttpBmo {

public String demo(String request, Number index);

}

import org.springframework.stereotype.Service;

@Service

public class HttpBmoImpl implements HttpBmo {

@Override

public String demo(String request, Number index) {

return "{request : "+request

+", index : " + index + "}";

}

}

5. 访问服务,如下:

6. 好的教程不如好的文档

http://download.csdn.net/detail/qi_w2006/4971446

生成的文档中,枚举类RequestMethod生成的文档有问题,说是jdk1.6的BUG会在7中解决。。。

7. 好的文档不如好的例子

http://download.csdn.net/detail/qi_w2006/4971395

8. 如果没有积分可以访问我在有道云笔记的分享

http://note.youdao.com/share/?id=33d7766911bb20fb3c99ec07a4082712&type=note

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值