gpt4 book ai didi

java - Eclipse合并两个java项目

转载 作者:行者123 更新时间:2023-12-02 13:01:35 24 4
gpt4 key购买 nike

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

1) <强> jbosswildfly :Java 代码由许多 RESTful 服务和 Maven pom 组成。

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

enter image description here

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

问题

合并这两个项目的最佳方式是什么,以便 RESTful 服务以及 index.html可以在同一服务器上访问吗?

谢谢

更新

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

enter image description here

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

例如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] (default task-4) No mapping found for HTTP request with URI [/jbosswildfly-1.0/index.html] in DispatcherServlet with name '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);
}

最佳答案

您必须将 WebContent 文件夹下的文件从 theWhoZoo-web 移动到 jbosswildflysrc/main/webapp 作为 maven Web 资源的默认文件夹,如果不是这样,则必须创建它。

如果您想将 WebContent 保留为静态 Web 文件目录,您可以配置 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>

关于java - Eclipse合并两个java项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44283269/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com