parent
396cf76ef5
commit
bc0eb996ff
|
|
@ -79,11 +79,11 @@ public class JerseyAutoConfiguration implements WebApplicationInitializer {
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void path() {
|
public void path() {
|
||||||
if (StringUtils.hasLength(this.jersey.getPath())) {
|
if (StringUtils.hasLength(this.jersey.getApplicationPath())) {
|
||||||
this.path = parsePath(this.jersey.getPath());
|
this.path = parseApplicationPath(this.jersey.getApplicationPath());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
this.path = findPath(AnnotationUtils.findAnnotation(this.config.getClass(),
|
this.path = findApplicationPath(AnnotationUtils.findAnnotation(this.config.getClass(),
|
||||||
ApplicationPath.class));
|
ApplicationPath.class));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -145,17 +145,15 @@ public class JerseyAutoConfiguration implements WebApplicationInitializer {
|
||||||
servletContext.setInitParameter("contextConfigLocation", "<NONE>");
|
servletContext.setInitParameter("contextConfigLocation", "<NONE>");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String findPath(ApplicationPath annotation) {
|
private static String findApplicationPath(ApplicationPath annotation) {
|
||||||
// Jersey doesn't like to be the default servlet, so map to /* as a fallback
|
// Jersey doesn't like to be the default servlet, so map to /* as a fallback
|
||||||
if (annotation == null) {
|
if (annotation == null) {
|
||||||
return "/*";
|
return "/*";
|
||||||
}
|
}
|
||||||
String path = annotation.value();
|
return parseApplicationPath(annotation.value());
|
||||||
|
|
||||||
return parsePath(path);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String parsePath(String applicationPath) {
|
private static String parseApplicationPath(String applicationPath) {
|
||||||
if (!applicationPath.startsWith("/")) {
|
if (!applicationPath.startsWith("/")) {
|
||||||
applicationPath = "/" + applicationPath;
|
applicationPath = "/" + applicationPath;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -44,9 +44,10 @@ public class JerseyProperties {
|
||||||
private Filter filter = new Filter();
|
private Filter filter = new Filter();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Path at which the application will be available.
|
* Path that serves as the base URI for the application. Overrides
|
||||||
|
* the value of "@ApplicationPath" if specified.
|
||||||
*/
|
*/
|
||||||
private String path;
|
private String applicationPath;
|
||||||
|
|
||||||
public Filter getFilter() {
|
public Filter getFilter() {
|
||||||
return this.filter;
|
return this.filter;
|
||||||
|
|
@ -72,12 +73,12 @@ public class JerseyProperties {
|
||||||
this.init = init;
|
this.init = init;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getPath() {
|
public String getApplicationPath() {
|
||||||
return this.path;
|
return this.applicationPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPath(String path) {
|
public void setApplicationPath(String applicationPath) {
|
||||||
this.path = path;
|
this.applicationPath = applicationPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum Type {
|
public enum Type {
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@ import javax.ws.rs.Path;
|
||||||
import org.glassfish.jersey.server.ResourceConfig;
|
import org.glassfish.jersey.server.ResourceConfig;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration;
|
import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration;
|
||||||
|
|
@ -53,7 +54,7 @@ import static org.junit.Assert.assertEquals;
|
||||||
*/
|
*/
|
||||||
@RunWith(SpringJUnit4ClassRunner.class)
|
@RunWith(SpringJUnit4ClassRunner.class)
|
||||||
@SpringApplicationConfiguration(Application.class)
|
@SpringApplicationConfiguration(Application.class)
|
||||||
@IntegrationTest({ "server.port=0", "spring.jersey.path=/rest" })
|
@IntegrationTest({ "server.port=0", "spring.jersey.application-path=/api" })
|
||||||
@WebAppConfiguration
|
@WebAppConfiguration
|
||||||
public class JerseyAutoConfigurationWithoutApplicationPathTests {
|
public class JerseyAutoConfigurationWithoutApplicationPathTests {
|
||||||
|
|
||||||
|
|
@ -65,7 +66,7 @@ public class JerseyAutoConfigurationWithoutApplicationPathTests {
|
||||||
@Test
|
@Test
|
||||||
public void contextLoads() {
|
public void contextLoads() {
|
||||||
ResponseEntity<String> entity = this.restTemplate.getForEntity(
|
ResponseEntity<String> entity = this.restTemplate.getForEntity(
|
||||||
"http://localhost:" + this.port + "/rest/hello", String.class);
|
"http://localhost:" + this.port + "/api/hello", String.class);
|
||||||
assertEquals(HttpStatus.OK, entity.getStatusCode());
|
assertEquals(HttpStatus.OK, entity.getStatusCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -282,6 +282,7 @@ content into your application; rather pick only the properties that you need.
|
||||||
spring.mustache.view-names= # whitelist of view names that can be resolved
|
spring.mustache.view-names= # whitelist of view names that can be resolved
|
||||||
|
|
||||||
# JERSEY ({sc-spring-boot-autoconfigure}}/jersey/JerseyProperties.{sc-ext}[JerseyProperties])
|
# JERSEY ({sc-spring-boot-autoconfigure}}/jersey/JerseyProperties.{sc-ext}[JerseyProperties])
|
||||||
|
spring.jersey.application-path # path that serves as the base URI for the application
|
||||||
spring.jersey.type=servlet # servlet or filter
|
spring.jersey.type=servlet # servlet or filter
|
||||||
spring.jersey.init= # init params
|
spring.jersey.init= # init params
|
||||||
spring.jersey.filter.order=
|
spring.jersey.filter.order=
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue