我在build.gradle中包含了以下依赖项:
testCompile group: 'com.xebialabs.restito', name: 'restito', version:'0.5.1'
Run Code Online (Sandbox Code Playgroud)
但是对于这个jar,其他依赖项如jersey-core-1.18.3.jar也包括在内.
现在我想要这个jersey jar但是它还有一个包javax.ws.rs.core,其中包含与我在build.gradle中明确包含的最新版本的javax.ws.rs.core冲突的类.
有什么办法可以只从传递依赖中排除特定的包而不是整个依赖.我是一个新手,所以如果使用了不正确的术语,请纠正我.
当我运行以下命令时:
gradlew dependencies --configuration testCompile
Run Code Online (Sandbox Code Playgroud)
它给了我以下依赖树.此处仅显示相关部分
testCompile - Compile classpath for source set 'test'.
+--- org.apache.cxf:cxf-rt-frontend-jaxrs:3.0.3
| +--- org.apache.cxf:cxf-core:3.0.3 (*)
| +--- javax.ws.rs:javax.ws.rs-api:2.0.1
| +--- javax.annotation:javax.annotation-api:1.2
| \--- org.apache.cxf:cxf-rt-transports-http:3.0.3 (*)
+--- org.apache.cxf:cxf-rt-rs-service-description:3.0.0-milestone1
| \--- org.apache.cxf:cxf-rt-frontend-jaxrs:3.0.0-milestone1 -> 3.0.3 (*)
+--- org.codehaus.jackson:jackson-jaxrs:1.9.13
| +--- org.codehaus.jackson:jackson-core-asl:1.9.13
| \--- org.codehaus.jackson:jackson-mapper-asl:1.9.13
| \--- org.codehaus.jackson:jackson-core-asl:1.9.13
+--- org.codehaus.jackson:jackson-mapper-asl:1.9.12 -> 1.9.13 (*)
+--- com.fasterxml.jackson.core:jackson-databind:2.4.1.2
| +--- com.fasterxml.jackson.core:jackson-annotations:2.4.0
| \--- com.fasterxml.jackson.core:jackson-core:2.4.1.1
\--- com.xebialabs.restito:restito:0.5.1
+--- …Run Code Online (Sandbox Code Playgroud) 我使用Spring Mvc 4定义了一个休息服务,然后通过MockMvc测试它.当我使用Tomcat 7通过以下URL运行服务时,会返回正确的响应:
HTTP://本地主机:8080/SpringServiceSample /服务/问候/ Niharika
但是当我运行Junit测试时,我的日志中出现404错误:
INFO: FrameworkServlet '': initialization completed in 159 ms
May 18, 2015 12:36:02 PM org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for HTTP request with URI [/service/greeting] in DispatcherServlet with name ''
Run Code Online (Sandbox Code Playgroud)
以下是代码:
SpringServiceController.java
package com.test.springservice.controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/service/greeting")
public class SpringServiceController {
@RequestMapping(value = "/{firstName}", method = RequestMethod.GET)
@ResponseBody
public String getGreeting(
@PathVariable String firstName) {
String result = "Hello " + firstName;
return …Run Code Online (Sandbox Code Playgroud) 我有以下java对象:
ProcessBean.java
import java.util.List;
import com.fasterxml.jackson.annotation.JsonRootName;
@JsonRootName(value = "process")
public class ProcessBean{
private Integer id;
private String name;
private String description;
private String user;
private String executePermissions;
private String createdDtm;
private String updatedDtm;
private Process tpProcess;
private List<ProcessParamBean> processParameters;
/* --------Getters and Setters ----------*/
}
Run Code Online (Sandbox Code Playgroud)
我需要找到该对象的JSON模式,该模式用于在UI上显示这些字段。UI中字段的顺序取决于所生成的JSON模式中属性的顺序。
我使用以下代码生成了架构:
数据规范
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.module.jsonSchema.JsonSchema;
import com.fasterxml.jackson.module.jsonSchema.factories.SchemaFactoryWrapper;
public class DataSpec {
public static <T> String getDataSpec(Class<T> clazz) {
ObjectMapper mapper = new ObjectMapper();
mapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY);
SchemaFactoryWrapper visitor …Run Code Online (Sandbox Code Playgroud)