Eclipse合并了两个java项目

时间:2017-05-31 11:13:23

标签: java spring eclipse maven spring-mvc

我正在使用Eclipse开发一个在服务器上运行的Java项目。我有两个项目:

1) jbosswildfly :一个Java代码由一些RESTful服务和一个Maven pom组成。

2) theWhoZoo-web :另一个是包含一些html文件的网络项目。

enter image description here

我想合并这些项目,只有一个项目。我尝试将WebContent文件夹从theWhoZoo-web复制到jbosswildfly,启动服务器,但我无法访问index.html

问题

合并这两个项目的最佳方法是什么,以便可以在同一台服务器上访问RESTful Services和index.html

由于

更新

我尝试运行JBoss index.html,但获得404。

enter image description here

但是,当我调用其中一个RESTful Services时,它会返回一个结果。

e.g。 http://localhost:8080/jbosswildfly-1.0/category/list

但是,

http://localhost:8080/jbosswildfly-1.0/index.html

返回:

  

14:23:31,699 WARN [org.springframework.web.servlet.PageNotFound]   (默认任务-4)找不到带URI的HTTP请求的映射   [/jbosswildfly-1.0/index.html]在DispatcherServlet中,名称为' rest'

我的pom.xml有:

                <plugin>
                    <groupId>org.wildfly.plugins</groupId>
                    <artifactId>wildfly-maven-plugin</artifactId>
                    <version>1.0.2.Final</version>
                    <configuration>
                        <failOnMissingWebXml>false</failOnMissingWebXml>
                        <outputDirectory>webapps</outputDirectory>
                        <warName>ROOT</warName>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>2.3</version>
                    <configuration>
                        <failOnMissingWebXml>false</failOnMissingWebXml>
                        <outputDirectory>deployments</outputDirectory>
                        <warName>ROOT</warName>
                    </configuration>
                </plugin>

的web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="3.1"
         xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         metadata-complete="false">
   <!--       
         <servlet>
            <servlet-name>rest</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
         </servlet>
  -->        
         <servlet-mapping>
            <servlet-name>rest</servlet-name>
            <url-pattern>/*</url-pattern>
         </servlet-mapping>

</web-app>

WebAppInitializer.java

public class WebAppInitializer implements WebApplicationInitializer {

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
        ctx.register(AppConfig.class);
        ctx.setServletContext(servletContext);
        Dynamic dynamic = servletContext.addServlet("rest", new DispatcherServlet(ctx));
        dynamic.addMapping("/*");
        dynamic.setLoadOnStartup(1);
}

2 个答案:

答案 0 :(得分:1)

您必须将WebContent文件夹下的文件从theWhoZoo-web移至jbosswildfly&#39; src/main/webapp ,因为maven默认Web资源的文件夹,如果不是,则必须创建它。

如果您想将WebContent保留为静态网络文件目录,可以配置pom.xml,如:

...
<build>
<plugins>
<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <warSourceDirectory>WebContent</warSourceDirectory>
            </configuration>
</plugin>
....

要使DispatchServlet忽略.html,您可以

 <servlet-mapping>
        <servlet-name>rest</servlet-name>
        <url-pattern>/**/*.do</url-pattern>
 </servlet-mapping>

在这种情况下,spring-mvc只能拦截* .do请求,并且.html请求可以绕过容器。

如果您的spring项目中有很多链接,可能会将.html扩展名更改为.jsp更加容易。

如果.do不够,那么您可以添加更多内容,例如

  <servlet-mapping>
        <servlet-name>rest</servlet-name>
        <url-pattern>/**/*.do</url-pattern>
         <url-pattern>/category/*</url-pattern>
        <url-pattern>/somethingelse/*</url-pattern>
 </servlet-mapping>

答案 1 :(得分:0)

嗯,它不会变得简单。

作为一般指南,您可能希望首先将源代码和测试从一个复制到另一个,确保它仍然构建并添加任何缺少的依赖项。 (我倾向于首先尝试将jbosswildfly移到Who-soo上)

然后将包含Web目录的资源从一个添加到另一个。编辑index.html和web.xml文件以反映新结构。

启动Web服务器并检查日志以查找任何异常。尝试自己修复它们,如果你不能再回到stackoverflow。