Servlet 在 eclipse 中工作,但在 Apache Tomcat 中不工作。无法推断基地 url.....API 在 API 网关后面
Servlet works in eclipse, but not in Apache Tomcat. Unable to infer base url....API is behind API Gateway
请提前帮助并感谢您。在过去的 3 天里,我一直在 Whosebug 和其他地方研究这个问题。我的 Web 应用程序需要 2 urls。它在 eclipse 中工作,但在部署到 apache-tomcat (8.5.16) 时不起作用。 SpringBoot 版本 2.0.9,Spring 版本 5.0.13。
Web 服务方法不起作用,swagger 不断弹出消息:“无法推断基数 url。这在使用动态 servlet 注册或 API 位于 [=17= 后面时很常见] 网关”。这是一个没有 servlet 注册的工作应用程序,如下所示。
public class MyWsApplication extends SpringBootServletInitializer {
// other configurations here
// servlet registration below
@Bean
public DispatcherServlet dispatcherServlet() {
return new DispatcherServlet();
}
@Bean
public ServletRegistrationBean<DispatcherServlet> servletRegistration() {
String url1 = "/web-services-url1/*";
String url2 = "/services_url2/*";
ServletRegistrationBean<DispatcherServlet> registration = new ServletRegistrationBean<>(dispatcherServlet(),
url1, url2);
Map<String, String> params = new HashMap<>();
params.put("contextClass", "org.springframework.web.context.support.AnnotationConfigWebApplicationContext");
registration.setInitParameters(params);
return registration;
}
}
感谢所有阅读我的问题的人。我通过在 tomcat 中定义 2 个应用程序上下文解决了这个问题。添加 url 不需要所有这些 java 代码。解决方案:
http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Naming
请提前帮助并感谢您。在过去的 3 天里,我一直在 Whosebug 和其他地方研究这个问题。我的 Web 应用程序需要 2 urls。它在 eclipse 中工作,但在部署到 apache-tomcat (8.5.16) 时不起作用。 SpringBoot 版本 2.0.9,Spring 版本 5.0.13。 Web 服务方法不起作用,swagger 不断弹出消息:“无法推断基数 url。这在使用动态 servlet 注册或 API 位于 [=17= 后面时很常见] 网关”。这是一个没有 servlet 注册的工作应用程序,如下所示。
public class MyWsApplication extends SpringBootServletInitializer {
// other configurations here
// servlet registration below
@Bean
public DispatcherServlet dispatcherServlet() {
return new DispatcherServlet();
}
@Bean
public ServletRegistrationBean<DispatcherServlet> servletRegistration() {
String url1 = "/web-services-url1/*";
String url2 = "/services_url2/*";
ServletRegistrationBean<DispatcherServlet> registration = new ServletRegistrationBean<>(dispatcherServlet(),
url1, url2);
Map<String, String> params = new HashMap<>();
params.put("contextClass", "org.springframework.web.context.support.AnnotationConfigWebApplicationContext");
registration.setInitParameters(params);
return registration;
}
}
感谢所有阅读我的问题的人。我通过在 tomcat 中定义 2 个应用程序上下文解决了这个问题。添加 url 不需要所有这些 java 代码。解决方案: http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Naming