2015-06-12 2 views
0

Я создаю проект Spring MVC для своих собственных знаний, и я немного набросился. У меня есть файл приветствия и веб-сервис, и они работают очень красиво. Тем не менее, вместо localhost: 8080/ZFGC/нажав приветственный файл, я хочу, чтобы localhost: 8080/ударил его. Оттуда, я хочу иметь возможность называть мои веб-сервисы аналогичным образом, то есть без ZFGC /. Я не смог найти учебник, который на самом деле объясняет это правильно. Может ли кто-нибудь просветить меня?Spring MVC указывает на имя хоста

web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> 
    <display-name>zfgc</display-name> 
    <welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 

    <servlet> 
     <servlet-name>zfgc</servlet-name> 
     <servlet-class> 
      org.springframework.web.servlet.DispatcherServlet 
     </servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>zfgc</servlet-name> 
     <url-pattern>/welcome.jsp</url-pattern> 
     <url-pattern>/welcome.html</url-pattern> 
     <url-pattern>/index.htm</url-pattern> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 
</web-app> 

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>ZFGC</groupId> 
    <artifactId>ZFGC</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 
    <name>ZFGC</name> 
    <description>Zelda Fan Game Central</description> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>4.1.1.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-aop</artifactId> 
      <version>4.1.1.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>4.1.1.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-web</artifactId> 
      <version>4.1.1.RELEASE</version> 
     </dependency> 

     <dependency> 
      <groupId>taglibs</groupId> 
      <artifactId>standard</artifactId> 
      <version>1.1.2</version> 
     </dependency> 

     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version> 
     </dependency> 

     <dependency> 
      <groupId>commons-logging</groupId> 
      <artifactId>commons-logging</artifactId> 
      <version>1.1.3</version> 
     </dependency> 
    </dependencies> 

    <build> 
    <sourceDirectory>src</sourceDirectory> 
    <plugins> 
     <plugin> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>3.1</version> 
     <configuration> 
      <source>1.8</source> 
      <target>1.8</target> 
     </configuration> 
     </plugin> 
     <plugin> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>2.4</version> 
     <configuration> 
      <warSourceDirectory>WebContent</warSourceDirectory> 
      <failOnMissingWebXml>false</failOnMissingWebXml> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

zfgc-servlet.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 

http://www.springframework.org/schema/beans/spring-beans-4.0.xsd 
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-4.0.xsd"> 

    <context:component-scan base-package="com.zfgc.forum.controller" /> 

    <bean id="viewResolver" 
     class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
     <property name="viewClass" 
      value="org.springframework.web.servlet.view.JstlView" /> 
     <property name="prefix" value="/WEB-INF/jsp/" /> 
     <property name="suffix" value=".jsp" /> 
    </bean> 
</beans> 

directory structure:

+0

Какова среда выполнения, которую вы используете для запуска приложения? 'mvn jetty: run' или' tomcat'? –

+0

@ user1354678 Tomcat 8 – MGZero

+0

Вы запустили его так, как в eclipse? ProjectName -> Run As -> Run on Server? затем выбирая tomcat .. ИЛИ вы положили свое приложение в каталог webapp tomcat и запустили startup.bat ..? –

ответ

1

Поскольку вы запускаете приложение внутри затмения (по коту), это просто одноступенчатая конфигурация.

Следуйте инструкциям. (Обязательно остановите tomcat, прежде чем делать это)

1) Вы найдете папку как «Серверы» в списке проектов, отображаемой в затмении.

2) Развернуть Серверы -> Tomcat v8.0

3) Вы увидите список файлов конфигурации. Открыт server.xml

4) Scoll на дно. Вы увидите строку, которая будет, как это,

<Context docBase="ZFGC" path="/ZFGC" reloadable="true" source="org.eclipse.jst.jee.server:ZFGC"/> 

5) Теперь просто изменить эту строку в этом

<Context docBase="ZFGC" path="/" reloadable="true" source="org.eclipse.jst.jee.server:ZFGC"/> 

и сохраните изменения.

Следует отметить, что path="/ZFGC" изменен на path="/". Вот и все. Теперь запустите свой tomcat, и вы можете получить доступ к своему приложению в http://localhost:8080.

+0

Красивые. И похоже, что ответ ниже вашего также охватывает, как это сделать без затмения. Большое спасибо! – MGZero

+0

@MGZero, yup. Это поможет вам, если вы хотите запустить приложение вне eclipse. –

1

Чтобы ударить приложение с http://localhost:8080 вам нужно всего лишь развернуть свое веб-приложение как приложение ROOT на вашем сервере приложений.

Это в основном состоит в именовании файла WAR ROOT.war

В Maven вы можете сделать это легко с помощью:

<plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <configuration> 
        <warName>ROOT</warName> 
        <outputDirectory>war</outputDirectory> 
       </configuration> 
      </plugin> 
</plugins> 
Смежные вопросы