- 浏览: 151235 次
- 性别:
- 来自: 益阳
文章分类
- 全部博客 (98)
- 数据库 (11)
- 乱码 (1)
- java (38)
- struts2 (3)
- html (7)
- JQuery (10)
- javascript (4)
- 正则表达式 (1)
- jar异常 (1)
- IBATIS (1)
- dom4j (1)
- 那点小事 (2)
- my97 (1)
- jsp (2)
- 单元测试 (1)
- Eclipse (0)
- 错误类 (1)
- DB2 (1)
- 我们一家 (0)
- software (0)
- servicemix启动出错 (1)
- mongodb (1)
- mysql (1)
- shell (1)
- webservice (1)
- 架构 (3)
- 软件 (1)
- maven (1)
- spring (1)
- 工具 (1)
- 环境搭建 (1)
- js (1)
- robot-framework (1)
最新评论
-
qzg196:
楼主啊 我用的4.0的服务器版。为什么配置好后 地址已经跳转 ...
CAS-3.2.1自定义客户端登录界面----完整篇 -
月色无夜:
楼主你附带在项目中的证书导入密码是什么?
CAS-3.2.1自定义客户端登录界面----完整篇 -
zws_miss:
AuthenticationViaFormAction 这 ...
CAS-3.2.1自定义客户端登录界面----完整篇 -
hotapple:
...
tomcat下摘要认证(数据库配置用户角色)+java代码模拟请求 -
cherishit:
https的安装配置在哪里呵? 求拔刀相助
linux下:apache2.2.27 + tomcat7.0 + openssl-1.0.1g(集群+session共享|摘要认证|HTTPS)
1.首先指明所需要的jar,附件中是我学习时所创建的工程,如果你想直接看项目代码,可以下载下来瞧瞧。jersey所需要的必要jar:asm-3.3.jar、jersey-core-1.7.jar、jersey-server-1.7.jar、jsr311-api-1.1.jar,另外附件中的工程的lib中还有一些jar:commons-beanutils-1.8.0.jar、commons-collections-3.2.jar、commons-lang-2.4.jar、commons-logging-1.1.1.jar、ezmorph-1.0.4.jar、json-lib-2.4-jdk15.jar这些jar是使用JSON所需要的jar。
2.web.xml配置,其中com.thinknet.restful就是你的需要加载发布的REST服务包名,如果你在不同的包下面存放了rest服务类,那你就需要在【<param-value>】配置中以逗号分开你需要加载的包,如下所示:
3.java代码,这里我举出了三个GET、POST、PUT服务方法,还有DELETE服务方法没写,如果你有兴趣可以做得更好。
4.如果你把上面所说的都做好了,rest服务就只需要发布就可以了,我是用tomcat发布的。
5.在浏览器中输入:http://localhost:8080/tnwebserver/rest/thinknet/getSayHello就会响应get hello jersey.
6.但是如果我访问POST、PUT等服务呢?可能浏览器中可以请求这些服务,我用浏览器请求带参的POST服务没有通过,报405的错误,我想是需要一点特殊方法才行,但我们没必须要去研究用浏览器访问,下面分别说说CXF模拟客户端与Jquery中的AJAX模拟客户端请求。
CXF代码【PUT请求】:
CXF代码【POST请求】:
如果你对CXF客户端访问rest服务感兴趣,请下载jar包:cxf-2.6.13.jar
JQuery Ajax请求rest服务:
以上GET与POST的请求都是正常的,但是这里的PUT就出现了问题,我们传递过去的参数变成了null(仔细看PUT服务方法中参数加了一个注解@QueryParam),是服务端没有接收到,但CXF访问PUT服务没问题,其实是我们JS代码没有设置好所导致的,我找了很久也没能找到解决方案,只要加了注解@QueryParam的服务,Jquery Ajax中的参数服务端就无法接收,这个问题我想把交给你们解决,如果你们感兴趣的话。
2.web.xml配置,其中com.thinknet.restful就是你的需要加载发布的REST服务包名,如果你在不同的包下面存放了rest服务类,那你就需要在【<param-value>】配置中以逗号分开你需要加载的包,如下所示:
<servlet> <servlet-name>Jersey REST Service</servlet-name> <servlet-class> com.sun.jersey.spi.container.servlet.ServletContainer </servlet-class> <init-param> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>com.thinknet.restful,com.thinknet.restful1</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Jersey REST Service</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping>
3.java代码,这里我举出了三个GET、POST、PUT服务方法,还有DELETE服务方法没写,如果你有兴趣可以做得更好。
package com.thinknet.restful; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import net.sf.json.JSONObject; @Path(value = "/thinknet") public class CardUnifiedCheck { @GET @Path("/getSayHello") @Produces(MediaType.TEXT_PLAIN) public String sayhello() { return "get hello jersey."; } @POST @Path("/postSayHello") public String sayhelloPost(String data) { JSONObject jo = JSONObject.fromObject(data); return jo.getString("name") + " post say hello."; } @PUT @Path("/putSayHello") public String sayHelloPut(@QueryParam("name") String name) { return name + " put say hello."; } }
4.如果你把上面所说的都做好了,rest服务就只需要发布就可以了,我是用tomcat发布的。
5.在浏览器中输入:http://localhost:8080/tnwebserver/rest/thinknet/getSayHello就会响应get hello jersey.
6.但是如果我访问POST、PUT等服务呢?可能浏览器中可以请求这些服务,我用浏览器请求带参的POST服务没有通过,报405的错误,我想是需要一点特殊方法才行,但我们没必须要去研究用浏览器访问,下面分别说说CXF模拟客户端与Jquery中的AJAX模拟客户端请求。
CXF代码【PUT请求】:
ClientResource clientR = new ClientResource("http://localhost:8080/tnwebserver/rest/thinknet/putSayHello"); clientR.addQueryParameter("name", "无敌浩克"); Representation result = clientR.put(""); result.setCharacterSet(CharacterSet.UTF_8); System.out.println(new String(result.getText()));
CXF代码【POST请求】:
ClientResource clientR = new ClientResource("http://localhost:8080/tnwebserver/rest/thinknet/postSayHello"); // clientR.addQueryParameter("name", "无敌浩克"); JSONObject jo = new JSONObject(); jo.put("name", "无敌浩克"); Representation result = clientR.post(jo.toString()); result.setCharacterSet(CharacterSet.UTF_8); System.out.println(new String(result.getText()));
如果你对CXF客户端访问rest服务感兴趣,请下载jar包:cxf-2.6.13.jar
JQuery Ajax请求rest服务:
$(function(){ // GET按钮请求 $("#getBtn").click(function(){ var requestURL = "/tnwebserver/rest/thinknet/getSayHello"; $.ajax({ type : "GET", url : requestURL, async : false, cache : false, success : function(resultData, textStatus) { $("#getText").val(resultData); } }); }); // POST按钮请求 $("#postBtn").click(function(){ var paramter = {}; paramter= "{'name':'"+$("#postParamVal").val()+"'}"; var requestURL = "/tnwebserver/rest/thinknet/postSayHello"; $.ajax({ type : "POST", url : requestURL, async : false, data : paramter, cache : false, contentType: "application/json;charset=utf-8", success : function(resultData, textStatus) { $("#postText").val(resultData); } }); }); // PUT按钮请求 $("#putBtn").click(function(){ var paramter = {}; paramter= "{'name':'"+$("#putParamVal").val()+"'}"; var requestURL = "/tnwebserver/rest/thinknet/putSayHello"; $.ajax({ type : "PUT", url : requestURL, async : false, data : paramter, cache : false, contentType: "application/json;charset=utf-8", success : function(resultData, textStatus) { $("#putText").val(resultData); } }); }); });
以上GET与POST的请求都是正常的,但是这里的PUT就出现了问题,我们传递过去的参数变成了null(仔细看PUT服务方法中参数加了一个注解@QueryParam),是服务端没有接收到,但CXF访问PUT服务没问题,其实是我们JS代码没有设置好所导致的,我找了很久也没能找到解决方案,只要加了注解@QueryParam的服务,Jquery Ajax中的参数服务端就无法接收,这个问题我想把交给你们解决,如果你们感兴趣的话。
- tnwebserver.rar (2.2 MB)
- 下载次数: 111
发表评论
-
druid数据源在spring-boot中支持批量sql
2018-07-17 10:21 11131、jdbc:mysql://192.168.0.1:3306 ... -
List分页 小例子
2017-12-27 17:06 372public static void main(Strin ... -
Metrics圈复杂插件
2017-03-02 09:14 442Metrics - http://metrics.source ... -
spring手动事务控制
2017-02-08 18:17 0@Autowired private DataSourc ... -
SourceMonitor扫描圈复杂度
2016-11-28 18:25 0一个方法中写太多代码很难维护,也很容易出错,使用Sour ... -
httpclient4.5调用接口
2016-09-23 09:22 601import net.sf.json.JSONObject ... -
使用spring加载properties文件
2016-09-22 16:47 551在spring的配置文件中,配置如下: <bea ... -
递归去除集合中的空格(集合中可能包括集合,Map、List)
2016-09-14 21:27 2533/** * 递归去除集合中所有的字符 ... -
大数据的批量更新方法
2016-08-09 14:47 2907大数据量的批量更新方 ... -
获得某年某月的第N周的日期
2014-06-18 11:56 1014本人工作至今3年有余,昨天花了2-3小时竟然没有把:通过指定某 ... -
tomcat下摘要认证(数据库配置用户角色)+java代码模拟请求
2014-05-27 14:15 46231. 如果你不明白摘要认证,可以看看这个网站:【http:/ ... -
HTTP请求(客户端与服务端)
2013-03-08 17:02 0客户端通过一个服务端的Servlet地址,然后通过请求的参数, ... -
HTTP
2012-11-13 15:38 15551.服务端使用的是web容器(tomcat),提供一个serv ... -
DateUtil
2012-09-27 16:11 9231.得到指定的前N个月 public static ... -
tomcat内存大小配置
2012-09-12 15:48 801-Xms128M -Xmx512M -XX:PermSize= ... -
26个字母排序
2012-09-11 14:30 1833public static void main(Strin ... -
TagLib简单学习
2012-06-12 16:04 01.新建标签处理类:MyTag.java public c ... -
hibernate分页
2012-06-11 14:25 0Query query = getSession().crea ... -
创建证书
2012-05-29 17:17 01.进入你的$JAVAHOME/bin目录,里面有一个keyt ... -
Eclipse启动不了?
2012-02-10 13:38 1056很悲剧.... 用了这么久的Eclipse了,配置运行环境都 ...
相关推荐
jersey构建简单的Restful服务!
Spring CXF Restful 实例
使用SpringBoot整合jersey 实现Restful web service.同时整合springmvc。
jersey的使用简单实例
SpringBoot+Mybatis+CXF框架,实现Restful api与 WebService api接口的大实验
spring整合cxf实现restful的webservice服务,代码分为服务端和客户端两个模块;服务端为接口,客户端为接口调用。
未引用spring, 单纯cxf restful 使用,只写了返回json数据的一个简单get请求例子
使用Spring整合CXF发布RESTFul项目案例(包含代码)
这是一个restful风格的webservice框架,使用官方的jersey 整合mybatis和spring,需要用tomcat8才能运行,
CXF Restful服务简单例子
该文档说明c#端如何创建和调用RestFul接口,并给出详细的代码说明,方便用户学习和深入掌握。
CAS restFul 接口调用 获取票据
利用CXF3.0.2+Spring3.2.14发布RESTFul,有源代码可以下载!
maven +Jersey Restful实现源码
在Eclipse中使用Jersey和Tomcat构建RESTful WebService及其调用
使用Spring 实现RESTful Web 服务 demo
NULL 博文链接:https://liangyingying1117.iteye.com/blog/2061846
Spring Boot 整合 Mybatis 实现RESTful API ,具体可以查看博客: http://blog.csdn.net/yaozhiqi1905658804/article/details/70820892