2017-05-31 146 views
1

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

1)jbosswildfly:其中一个Java代码由多个RESTful Services和一个Maven pom组成。

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

enter image description here

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

问题

什么是这两个项目合并的最佳途径,使RESTful服务还有index.html在同一台服务器上访问?

感谢

UPDATE

我尝试运行JBoss的index.html却得到了一个404

enter image description here

但是,当我调用REST风格的服务之一,它返回结果。

例如http://localhost:8080/jbosswildfly-1.0/category/list

但是,

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

回报:

14:23:31699 WARN [org.springframework.web.servlet.PageNotFound] (默认任务-4)没有映射在DispatcherServlet中使用URI [/jbosswildfly-1.0/index.html]以名称“rest”发现HTTP请求

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); 
} 

回答

0

那么它不会是简单的。

作为一般指南,您可能希望先将源代码和测试从一个复制到另一个,确保它仍然生成并添加任何缺失的依赖关系。(我的倾向是尝试将jbosswildfly移动到首先使用的Woo-soo)

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

启动Web服务器并检查日志是否有任何异常。尝试和自己修复它们,如果你不能,然后回到stackoverflow。

1

您必须WebContent文件夹下从theWhoZoo-webjbosswildflysrc/main/webapp作为maven默认文件夹移动文件的网络资源,如果不是这样,你必须创建它。

在情况下,如果你想保持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> 
+0

谢谢,我已经试过了。已经有一个'index.html',参见上面的UPDATE。不幸的是我得到了404。尽管我可以访问RESTful服务。你认为有一些配置问题? – Richard

+0

看起来你使用'spring-mvc',那么你可以:创建一个控制器,使用'index.html'作为模板,或者在'web.xml'中改变'org.springframework.web.servlet.DispatcherServlet'的servlet映射。 ,因此DispatcherServlet可以绕过'.html'扩展,并且容器可以直接提供。 –

+0

我的无知抱歉,但是我正在使用Spring构建RESTful服务。为了迎合'index.html',我在'web.xml'文件中添加了一个''(见上文)。但不幸的是没有变化。你是这个意思吗? – Richard