@Path("/account") public class AccountController { //*************************************Login****************************************** @GET @Path("/login") @Produces(MediaType.APPLICATION_JSON+ ";charset=UTF-8") public Response login(@QueryParam("userName")String userName,@QueryParam("password")String password,@QueryParam("verificationCode")String verificationCode){ if(StringUtils.isBlank(userName)){ return Response.paramErrorResponse("请输入用户名!"); } if(StringUtils.isBlank(password)){ return Response.paramErrorResponse("请输入登陆密码!"); } if(StringUtils.isBlank(verificationCode)){ return Response.paramErrorResponse("请输入验证码"); } String ip = cxfUtil.getClientIpCxfRest(); //1.验证验证码 //2.验证用户名与密码 try { loginManager.login(userName, password,ip); } catch (Exception e) { return Response.errorResponse(e.getMessage()); } return Response.successResponse(null); } @POST @Path("/accountisexist") @Produces(MediaType.APPLICATION_JSON+ ";charset=UTF-8") public Response accountIsExist(@QueryParam("userName")String userName){ if(StringUtils.isBlank(userName)){ return Response.paramErrorResponse("请输入用户名!"); } if(commonManager.isExistUserName(userName)){ return Response.successResponse(true); }else{ return Response.successResponse(false); } } //*************************************************register****************************** @POST @Path("/register") @Produces(MediaType.APPLICATION_JSON+ ";charset=UTF-8") public Response register(@FormParam("userName") String userName,@FormParam("password")String password,@FormParam("mobile")String mobile,@FormParam("verificationCode")String verificationCode){ if(StringUtils.isBlank(userName)){ return Response.paramErrorResponse("请输入用户名!"); } if(StringUtils.isBlank(password)){ return Response.paramErrorResponse("请输入登陆密码!"); } if(StringUtils.isBlank(mobile)){ return Response.paramErrorResponse("请输入手机号!"); } if(StringUtils.isBlank(verificationCode)){ return Response.paramErrorResponse("请输入验证码"); } String ip = cxfUtil.getClientIpCxfRest(); //1.验证手机验证码 //2.注册用户 try { registerManager.register(userName, password, 1, mobile, ip); } catch (Exception e) { e.printStackTrace(); return Response.errorResponse(e.getMessage()); } return Response.successResponse(null); } }
junit
@RunWith(SpringJUnit4ClassRunner.class) @SpringApplicationConfiguration(classes = Application.class) @WebAppConfiguration @IntegrationTest public class AccountControllerTest { public final String REST_SERVICE_URL = "http://localhost:8080/p2p/data/ws/rest"; private static final String TYPE_XML = "application/xml"; private static final String TYPE_JSON = "application/json"; @Test public void testLogin() { //(String userName,String password,String verificationCode) WebClient client = WebClient.create(REST_SERVICE_URL); client.path("/account/login","123456").accept( TYPE_JSON).type(TYPE_JSON).query("userName", "test").query("password", "12345678").query("verificationCode", "654286315"); String response = client.get(String.class); System.out.println(response); } static Client client = null; @BeforeClass public static void init() { //register(JacksonFeatures.class). client = ClientBuilder.newBuilder().build(); } @Test public void test(){ WebTarget target = client.target(REST_SERVICE_URL).path("/account/login").queryParam ("userName", "test").queryParam("password", "123456789").queryParam("verificationCode", "654286315"); String response = target.request(TYPE_JSON).get(String.class); System.out.println(response); } @Test public void testAccountIsExist() { WebTarget target = client.target(REST_SERVICE_URL).path("/account/accountisexist").queryParam ("userName", "testfsd"); String response = target.request(TYPE_JSON).post(null,String.class); System.out.println(response); } @Test public void testRegister() { Form f = new Form(); f.param("userName", "adminnn"); f.param("password", "123456789"); f.param("mobile", "13916145180"); f.param("verificationCode", "12345"); WebTarget target = client.target(REST_SERVICE_URL).path("/account/register"); String response = target.request(TYPE_JSON).post(Entity.form(f),String.class); System.out.println(response); } }
public class Response { private String status; private String msg; private Object data; public Response(String status, String msg, Object data) { super(); this.status = status; this.msg = msg; this.data = data; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public Object getData() { return data; } public void setData(Object data) { this.data = data; } /** * 参数错误 * **/ public static Response paramErrorResponse(String errorMessage){ return new Response(ConstantsUtil.CommonCode.PARAM_ERROR_CODE,errorMessage,null); } public static Response paramErrorResponse(){ return new Response(ConstantsUtil.CommonCode.PARAM_ERROR_CODE,ConstantsUtil.CommonMessage.PARAM_ERROR_MESSAGE,null); } /** * 获取数据错误 * **/ public static Response errorResponse(String errorMessage){ return new Response(ConstantsUtil.CommonCode.FAILED_CODE,errorMessage,null); } public static Response errorResponse(){ return new Response(ConstantsUtil.CommonCode.FAILED_CODE,ConstantsUtil.CommonMessage.FAILED_MESSAGE,null); } /** * 获取数据成功 * **/ public static Response successResponse(Object data){ return new Response(ConstantsUtil.CommonCode.SUCCESS_CODE,ConstantsUtil.CommonMessage.SUCCESS_MESSAGE,data); } public static Response successResponse(){ return new Response(ConstantsUtil.CommonCode.SUCCESS_CODE,ConstantsUtil.CommonMessage.SUCCESS_MESSAGE,null); } /** * 用户未登录 * **/ public static Response noLoginResponse(){ return new Response(ConstantsUtil.CommonCode.NO_LOGIN,ConstantsUtil.CommonMessage.NO_LOGIN_MESSAGE,null); } }
===================================================================================
@Path("/capital") public class CapitalController { @Autowired private CapitalManager capitalManager; /** * 检索获得当前用户的资金账户 * * @param userid * @return */ @POST @Path("/queryCapitalInfo") @Produces(MediaType.APPLICATION_JSON + ";charset=UTF-8") @Consumes(MediaType.APPLICATION_JSON) public List<ThirdPaymentAccount> queryCapitalInfo(Account acc) { List<ThirdPaymentAccount> result = capitalManager.queryCapitalInfo(acc); return result; } }
JUnit
package com.vcredit.jdev.p2p.capital.modal; import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.client.Entity; import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.Form; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.IntegrationTest; import org.springframework.boot.test.SpringApplicationConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.web.WebAppConfiguration; import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; import com.vcredit.jdev.p2p.Application; import com.vcredit.jdev.p2p.entity.Account; @RunWith(SpringJUnit4ClassRunner.class) @SpringApplicationConfiguration(classes = Application.class) @WebAppConfiguration @IntegrationTest public class CapitalControllerTest { public final String REST_SERVICE_URL = "http://localhost:8080/p2p/data/ws/rest"; static Client client = null; // @Autowired // private CapitalController c; @BeforeClass public static void init() { //register(JacksonFeatures.class). client = ClientBuilder.newClient(); client.register(JacksonJsonProvider.class); } @Test public void test() { String path = "/capital/queryCapitalInfo"; WebTarget target = client.target(REST_SERVICE_URL).path(path); Account c = new Account(); c.setAccountSequence(1l); Response response = target.request(MediaType.APPLICATION_JSON).post(Entity.json(c)); int statusCode = response.getStatus(); String content = response.readEntity(String.class); System.out.println("@" + content); System.out.println("retrieveFile1() statusCode:" + statusCode); assert (statusCode == 200); } }
======================================================
@BeforeClass public static void init() { //register(JacksonFeatures.class). client = ClientBuilder.newBuilder().build(); client.register(JacksonJsonProvider.class); } @Before public void setUp() throws Exception { } @Test public void testLogin(){ WebTarget target = client.target(REST_SERVICE_URL).path("/account/login"); Map body = new HashMap(); body.put("userName", "admin"); body.put("password", "123456789"); body.put("verificationCode", "test"); String response = target.request(TYPE_JSON).post(Entity.json(body),String.class); System.out.println(response); }
/** * { "userName":"admin", "password":"123456789", "verificationCode":"123456789" } * * * */ @POST @Path("/login") public Response login(Map<String, Object> paramMap){ String userName = (String) paramMap.get("userName"); String password = (String) paramMap.get("password"); String verificationCode = (String) paramMap.get("verificationCode"); if(StringUtils.isBlank(userName)){ return Response.paramErrorResponse("请输入用户名!"); } if(StringUtils.isBlank(password)){ return Response.paramErrorResponse("请输入登陆密码!"); } if(StringUtils.isBlank(verificationCode)){ return Response.paramErrorResponse("请输入验证码"); } String ip = cxfUtil.getClientIpCxfRest(); //1.验证验证码 //2.验证用户名与密码 try { loginManager.login(userName, password,ip); } catch (Exception e) { return Response.errorResponse(e.getMessage()); } return Response.successResponse(); }
相关推荐
6. **测试和调试**:使用`restful-test`目录中的资源,可以编写JUnit测试或者使用工具如Postman进行接口测试,验证REST服务是否按预期工作。 7. **安全性考虑**:在生产环境中,我们需要考虑API的安全性,可能需要...
在这个项目中,开发者使用MyEclipse 10作为集成开发环境,它提供了丰富的工具支持,如代码编辑、调试、部署等功能,便于快速构建和测试CXF RESTful Web服务。Tomcat 7则是一个流行的开源Servlet容器,用于运行Java ...
9. **测试RESTful服务**:介绍如何使用curl命令行工具或JUnit等测试框架进行服务的本地测试,验证服务的正确性。 10. **实例分析**:可能提供一个完整的CXF RESTful服务开发案例,从创建项目、定义接口到部署运行,...
6. **测试与调试**:项目中通常会包含单元测试和集成测试,使用JUnit和Mockito等工具验证服务的正确性。此外,CXF提供了强大的调试工具,如SOAP消息跟踪和日志记录,帮助开发者调试Web服务通信问题。 7. **部署**:...
8. **运行与调试**:在MyEclipse中运行项目,启动CXF的内置服务器,然后运行JUnit测试,观察测试结果。 9. **部署服务**:如果需要在外部服务器上部署,可以使用Maven的`cxf-codegen-plugin`插件生成WAR文件,然后...
6. **服务测试**:了解如何使用CXF提供的工具或JUnit测试服务,确保其正确工作。 7. **客户端调用**:学习如何生成和使用CXF客户端代码来调用远程服务。 通过这个实例,开发者不仅可以学习到理论知识,还能获得实践...
6. **调试与测试**:CXF提供了强大的调试和测试工具,例如CXF的WS-Security和WS-Policy支持,以及JUnit测试框架的集成。你可以利用这些工具对服务进行单元测试和功能测试,确保其正确性和安全性。 7. **错误处理与...
SpringBoot整合CXF是将流行的Java Web服务框架CXF与SpringBoot轻量级框架结合,以便更方便地创建和消费Web服务。这个项目提供了一个很好的示例,通过详细注释帮助开发者理解如何在SpringBoot应用中发布和调用Web服务...
8. **调试与测试工具**:CXF提供了强大的客户端测试工具CXFTestSupport,以及基于JUnit的Web服务测试框架,方便开发者进行服务的调试和验证。 9. **文档生成**:CXF可以自动生成服务的WSDL和Schema,以及客户端的...
总结,Apache CXF提供了一套完善的工具和API,使得开发者能高效地创建、测试和部署RESTful Web服务。理解并掌握CXF与REST的结合,有助于提升Web服务开发的效率和质量。通过实践和不断探索,开发者可以利用CXF的强大...
这些测试类可能使用JUnit或TestNG等单元测试框架编写,目的是验证客户端是否能正确地与Web服务通信并返回预期结果。测试代码通常包括以下步骤: 1. 创建客户端实例:与上述创建客户端实例的步骤相同。 2. 设置模拟...
8. **测试工具**:CXF提供了JUnit测试支持,便于对Web服务进行单元测试和集成测试。 9. **国际化和本地化**:CXF支持多语言和地区的Web服务,可以通过简单的配置实现。 **在"apache-cxf-3.1.1"中可能包含的内容:*...
8. **测试和调试**:CXF提供了JUnit测试支持和wsdl2java、java2wsdl等工具,便于开发和调试Web服务。 9. **RESTful服务**:CXF通过JAX-RS支持RESTful服务,允许开发者创建资源导向的服务,使用HTTP方法进行操作。 ...
在本项目中,jqGrid作为前端展示数据的工具,与后端CXF RESTful服务进行通信,实时更新表格内容。 5. **项目结构**: 由于是Maven项目,可以预期项目会遵循Maven的标准目录结构,如`src/main/java`存放Java源代码...
5. **src/test/java**:测试代码目录,可能有JUnit测试类,用于验证CXF客户端的正确性。 6. **target**:Maven构建输出目录,包含了编译后的类文件、打包的JAR或WAR文件等。 通过这个CXF客户端Demo,开发者可以学习...
在Apache CXF和MyBatis的集成项目中,使用JUnit对服务和数据访问层进行单元测试,可以保证代码质量,及时发现和修复问题。 项目"Khywserver"可能是一个包含服务器端实现的模块,可能包含了上述技术的整合代码。这个...
在“验证客户端源码CXF”的描述中,提到的"已经验证是可以用的"意味着该源码实现了与CXF相关的功能,并经过测试确保其正常运行。这可能包括了创建CXF客户端,调用远程服务,处理响应,以及可能的错误处理和异常管理...
4. **测试文件**:可能包含JUnit测试,验证Web服务的正确性和功能。 5. **WSDL文件**:可能提供了一个预定义的服务接口描述,供客户端调用。 在部署这个Web服务后,客户端可以通过发送SOAP请求或者使用RESTful风格...
6. **测试和调试**:如何使用JUnit进行单元测试,以及如何使用CXF的客户端测试工具进行服务调用测试。 7. **最佳实践**:如何有效地组织项目结构,避免服务暴露过多,以及如何利用Spring的事务管理来处理服务调用中...
同时,CXF提供了测试工具,如JUnit测试客户端,便于单元测试和集成测试。 8. **RESTful服务**:除了SOAP服务,CXF也支持RESTful服务。通过使用JAX-RS标准,你可以创建基于HTTP的简单、轻量级服务。 9. **版本管理*...