Tomcat 云计算中的上下文路径路由问题
我目前正在向JavaBuildPack(Tomcat)部署一个动态Java应用程序(基于servlet) 我们使用基于上下文路径的路由。对于应用程序,我们正在应用程序属性文件或Dserver.contextPath中设置上下文路径,两者都可以正常工作 我们如何设置非Spring Java应用程序的上下文路径以在CloudFoundry Tomcat容器上工作?我们尝试了以下选项,但在连接到路由时出现了404个错误Tomcat 云计算中的上下文路径路由问题,tomcat,servlets,cloud-foundry,contextpath,Tomcat,Servlets,Cloud Foundry,Contextpath,我目前正在向JavaBuildPack(Tomcat)部署一个动态Java应用程序(基于servlet) 我们使用基于上下文路径的路由。对于应用程序,我们正在应用程序属性文件或Dserver.contextPath中设置上下文路径,两者都可以正常工作 我们如何设置非Spring Java应用程序的上下文路径以在CloudFoundry Tomcat容器上工作?我们尝试了以下选项,但在连接到路由时出现了404个错误 cf set-env my-application JBP_CONFIG_TOMC
cf set-env my-application JBP_CONFIG_TOMCAT '{tomcat: { context_path: /first-segment/second-segment }}'
如何设置非spring java应用程序的上下文路径以在CloudFoundry tomcat容器上工作
您拥有的语法应该可以工作。我测试了cf set env JBP_CONFIG_TOMCAT'{TOMCAT:{context_path:“/spring music”}}'
,结果正常。您还可以使用cf set env JBP_CONFIG_TOMCAT'[TOMCAT:{context_path:'/spring music'}]
,这对我也很有用
使用manifest.yml
的示例:
---
applications:
- name: spring-music
memory: 512M
host: spring-music-example
path: build/libs/spring-music.war
env:
JBP_CONFIG_TOMCAT: '[tomcat: {context_path: "/spring-music"}]'
这将导致Spring Music在上可用,而不是默认值
这与基于路径的路由(即,cf push--route path
或cf create route--path
)结合使用也非常有效
如果它不起作用:
cf push
重新启动应用程序或应用更改config/tomcat.yml
文件(即)的版本。该文件定义了配置选项的层次结构,并且偶尔会发生更改。确保所设置的内容与构建包版本中的该文件相匹配希望有帮助!在设置环境变量后,您是否重新启动了我的应用程序?此环境变量需要重新启动应用程序,重新启动是不够的。