diff --git a/pom.xml b/pom.xml
index c3426d9..507cc40 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,6 +22,7 @@
11
${java.version}
${java.version}
+ 9.4.31.v20200723
@@ -283,19 +284,26 @@
test
-
org.springframework.boot
- spring-boot-starter-tomcat
+ spring-boot-starter-web
+ 2.3.3.RELEASE
+
+
+ org.springframework.boot
+ spring-boot-starter-tomcat
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-jetty
2.3.3.RELEASE
-
-
org.springframework.boot
spring-boot-autoconfigure
2.3.3.RELEASE
-
@@ -377,9 +385,9 @@
hapi-fhir-testpage-overlay
-
- false
+
+ false
diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/Application.java b/src/main/java/ca/uhn/fhir/jpa/starter/Application.java
index e09c995..d773ad9 100644
--- a/src/main/java/ca/uhn/fhir/jpa/starter/Application.java
+++ b/src/main/java/ca/uhn/fhir/jpa/starter/Application.java
@@ -1,18 +1,24 @@
package ca.uhn.fhir.jpa.starter;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchRestClientAutoConfiguration;
+import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;
+import java.util.Arrays;
+
@ServletComponentScan(basePackageClasses = {JpaRestfulServer.class}, basePackages = "ca.uhn.fhir.jpa.starter")
@SpringBootApplication(exclude = ElasticsearchRestClientAutoConfiguration.class)
-public class Application {
+public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
@@ -23,6 +29,27 @@ public class Application {
//UI is now accessible at http://localhost:8080/
}
+ @Override
+ protected SpringApplicationBuilder configure(
+ SpringApplicationBuilder builder) {
+ return builder.sources(Application.class);
+ }
+
+
+ @Autowired
+ AutowireCapableBeanFactory beanFactory;
+
+ @Bean
+ public ServletRegistrationBean hapiServletRegistration() {
+ ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean();
+ JpaRestfulServer jpaRestfulServer = new JpaRestfulServer();
+ beanFactory.autowireBean(jpaRestfulServer);
+ servletRegistrationBean.setServlet(jpaRestfulServer);
+ servletRegistrationBean.addUrlMappings("/hapi-fhir-jpaserver/fhir/*");
+ servletRegistrationBean.setLoadOnStartup(1);
+ return servletRegistrationBean;
+ }
+
@Bean
public ServletRegistrationBean servletRegistrationBean() {
diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/BaseJpaRestfulServer.java b/src/main/java/ca/uhn/fhir/jpa/starter/BaseJpaRestfulServer.java
index 168a06b..616854b 100644
--- a/src/main/java/ca/uhn/fhir/jpa/starter/BaseJpaRestfulServer.java
+++ b/src/main/java/ca/uhn/fhir/jpa/starter/BaseJpaRestfulServer.java
@@ -11,7 +11,9 @@ import ca.uhn.fhir.jpa.binstore.BinaryStorageInterceptor;
import ca.uhn.fhir.jpa.bulk.provider.BulkDataExportProvider;
import ca.uhn.fhir.jpa.interceptor.CascadingDeleteInterceptor;
import ca.uhn.fhir.jpa.partition.PartitionManagementProvider;
-import ca.uhn.fhir.jpa.provider.*;
+import ca.uhn.fhir.jpa.provider.GraphQLProvider;
+import ca.uhn.fhir.jpa.provider.IJpaSystemProvider;
+import ca.uhn.fhir.jpa.provider.JpaConformanceProviderDstu2;
import ca.uhn.fhir.jpa.provider.dstu3.JpaConformanceProviderDstu3;
import ca.uhn.fhir.jpa.provider.r4.JpaConformanceProviderR4;
import ca.uhn.fhir.jpa.provider.r5.JpaConformanceProviderR5;
@@ -35,13 +37,14 @@ import org.springframework.http.HttpHeaders;
import org.springframework.web.cors.CorsConfiguration;
import javax.servlet.ServletException;
-import java.util.*;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
import java.util.stream.Collectors;
-
public class BaseJpaRestfulServer extends RestfulServer {
-
@Autowired
DaoRegistry daoRegistry;
diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/JpaRestfulServer.java b/src/main/java/ca/uhn/fhir/jpa/starter/JpaRestfulServer.java
index 8669fc8..773cc32 100644
--- a/src/main/java/ca/uhn/fhir/jpa/starter/JpaRestfulServer.java
+++ b/src/main/java/ca/uhn/fhir/jpa/starter/JpaRestfulServer.java
@@ -6,7 +6,7 @@ import javax.servlet.annotation.WebServlet;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Import;
-@WebServlet(urlPatterns = {"/hapi-fhir-jpaserver/fhir/*"})
+//@WebServlet(urlPatterns = {"/hapi-fhir-jpaserver/fhir/*"})
@Import(AppProperties.class)
public class JpaRestfulServer extends BaseJpaRestfulServer {
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
deleted file mode 100644
index 6ce88b0..0000000
--- a/src/main/webapp/WEB-INF/web.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
- org.springframework.web.context.ContextLoaderListener
-
-
- contextClass
-
- ca.uhn.fhir.jpa.starter.ApplicationContext
-
-
-
- contextConfigLocation
-
-
-
-
-
-
- spring
- org.springframework.web.servlet.DispatcherServlet
-
- contextClass
- org.springframework.web.context.support.AnnotationConfigWebApplicationContext
-
-
- contextConfigLocation
-
- ca.uhn.fhir.jpa.starter.FhirTesterConfig
-
-
- 2
-
-
- spring
- /
-
-
-
- fhirServlet
- ca.uhn.fhir.jpa.starter.JpaRestfulServer
- 1
-
-
- fhirServlet
- /fhir/*
-
-
-