我是一个Spring新手,正在制作一个Spring Web应用程序(不是Spring-boot,这有多大区别?)。部署在Tomcat7服务器上。
应用程序已启动并运行。我的问题是只能通过标准URL访问:
http://mycompany.com:8081/cwing-0.0.3-snapshot/index.html
以下操作不起作用:http://mycompany.com:8081/cwing-0.0.3-snapshothttp://mycompany.com:8081/cwing-0.0.3-snapshot/
即使我的web.xml将index.html列为欢迎页面。
这个问题的另一个症状是,应用程序中的各种链接都需要指定为相对的,而不是前置的“/”。
但即使是这些URL也不是我真正想要的。
我宁愿具体说明
http://mycompany.com:8081/cwing
并让它调出index.html。
遵循向Spring Boot应用程序添加上下文路径的指导
我在src/main/resources中创建了一个application.xml文件,其内容如下:
server.contextPath=/cwing
server.port=8081
这不起作用。http://mycompany.com:8081/cwing会在服务器上出现一个带有404错误的空白页,http://mycompany.com:8081/cwing/index.html也是如此。
我一定是漏掉了什么。还需要什么才能让它像我想要的那样工作?
<?xml version="1.0"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>cwing</display-name>
<!-- Creates the Spring Container shared by all Servlets and Filters -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- The definition of the Root Spring Container shared by all Servlets
and Filters -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring/context.xml
/WEB-INF/spring/datasource.xml
/WEB-INF/spring/security.xml
</param-value>
</context-param>
<servlet>
<servlet-name>d</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring/context.xml
/WEB-INF/spring/datasource.xml
/WEB-INF/spring/security.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>d</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<!-- Disables Servlet Container welcome file handling. Needed for compatibility
with Servlet 3.0 and Tomcat 7.0 -->
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
...
</web-app>
这与Spring MVC无关,而是与特定的服务器相关,默认情况下,Tomcat将您的WAR名称作为上下文根。如果您想要改变这一点,您可以一直重命名您的WAR文件,或者我建议更改您的pom.xml以构建具有最终名称的WAR文件,下面是如何做到这一点的:
<build>
<finalName>finalName</finalName>
. . .
</build>
我将application.properties中的contextPath设置为server.contextPath=/mywebapp,在带有spring security的spring boot application中,默认url设置为/login it,而不是将上下文路径设置为/mywebapp,并将我重定向为/login而不是/mywebapp/login。如何用spring secur
我正在尝试设置我的spring boot应用程序的上下文根。我将我的应用程序作为war文件部署到Jboss。当我将根URL部署到JBoss/wildly时,我试图设置它的上下文路径,但是它似乎被忽略了。除非我添加一个设置contex-root变量的jboss-web.xml文件,否则我的部署url总是基于war文件名: 例如:myapp.war总是部署为:localhost:8080/myapp,
我必须在tomcat 7中部署我的app.war文件。的。war文件名后面是它的版本号。这里我需要设置一个上下文路径,这样实际的url将只包含应用程序名(没有版本号)。 我的要求是,服务器中不应该有编辑.xml。 这是我的背景。xml如下所示。 context.xml放在war at /META-INF文件夹中。谁能告诉我我错在哪里?
我使用Spring Boot 2.1.2. RELEASE编写联调,无法设置所需的上下文路径。它总是等于空字符串(用servletContext.getContextPath()获得)。 application-test.properties: 测试配置: 呼叫代码: 应用测试中的其他属性。按预期注入属性。上下文路径通常在我运行服务器时设置。我试图以@SpringBootTest的形式启动这个测试
我的源代码位于如下文件夹结构中: MyGitroot/MyProj/Module1/SRC/Main/Groovy/COM/MyPak/Module1 MyGitroot/MyProj/Module2/SRC/Main/Groovy/COM/MyPak/Module2 MyGitroot/MyProj/Module3/SRC/Main/Groovy/COM/MyPak/Module3 Gradle