当前位置: 首页 > 知识库问答 >
问题:

Glassfish上Web应用程序的上下文路径3.1.2.2

史良哲
2023-03-14

我正在尝试找到一种方法来显式指定部署到Glassfish的Web应用程序的上下文路径3.1.2.2但到目前为止我还没有运气。有人能对此提供指导吗?背景如下:

我有一个Web应用程序,它由两个单独的Netbean(7.0)项目组成。第一个是Web服务,称为FOWS。第二个是使用FOWS网络服务的面向用户的Web应用程序。它被称为FooApp。

我最近将glassfish升级到3.1.2.2,希望解决其他一些问题,现在当我部署FooWS应用程序时,它成功部署,但使用上下文路径/web而不是/FooWS。这不是我特别关心的事情,除了当我尝试部署FooApp时,glassfish也尝试将其部署到/web,从而导致以下错误:

严重:加载app时出现异常:java.lang.Exception: WEB0113:虚拟服务器[server]已经在[/WEB]加载了web模块[FooWS];因此,无法在此虚拟服务器上的此上下文路径中加载web模块[FooApp]。

FooApp的web.xml如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 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">
    <context-param>
        <param-name>defaultWebRootId</param-name>
        <param-value>2631</param-value>
    </context-param>

    <listener>
        <listener-class>com.foo.service.AppInitialiser</listener-class>
    </listener>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
</web-app>

FooWS的配置是相似的。两者都不包含任何提及应用程序上下文的内容,因此我的期望是它应该使用 /FooWS 而不是默认使用 /web。

显而易见的解决方案似乎是覆盖web.xml中的上下文路径,但是我找不到任何这样做的方法。有什么建议吗?

只是一些后续,我不小心将上下文路径更改为/ FooW。这次它按预期部署到 /FooW。如果 /FooWS 导致旧行为返回,则将其更改回去,即它再次部署到 /web。看来我目前有一个解决方法。

为了让后面的人受益,我得到了与3.1.2相同的行为。我现在返回到3.1(b43),它的行为与预期一样。

共有1个答案

公羊浩气
2023-03-14

在与web.xml相同的文件夹中添加glassfish-web.xml文件

<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app error-url="">
    <context-root>/FooWS</context-root>
</glassfish-web-app>
 类似资料:
  • 我希望能够从服务spring bean中动态检索spring web应用程序的“servlet上下文路径”(例如或)。 这样做的原因是,我想在电子邮件中使用这个值,将发送给网站的用户。 编辑:附加要求: 我想知道是否有一种方法可以在应用程序启动时检索上下文路径,并让它在所有时间都可供我的所有服务检索?

  • 我已经通过安装插件准备了我的第一个vaadin应用程序,并创建了vaadin项目。构建成功并部署到wildFly后,尝试使用下面的localhost:port/myapp/和localhost:port//myapp/myuiservlet运行应用程序时也不起作用

  • 我已经使用Spring初始值设定项、嵌入式Tomcat、Thymeleaf模板引擎和作为可执行JAR文件的包生成了一个Spring Boot web应用程序。 使用的技术: Spring启动2.0.0。M6,Java8, Maven 这是我的安全配置 在我的 但当我在http://localhost:1234/iberiaWebUtils,而不是去http://localhost:1234/ibe

  • 我开发了一个使用 graphql 框架和 spqr 的应用程序,下面给出了依赖项。我的 spring 启动应用程序有一个上下文路径,比如 server.servlet-path=/asdfg 该应用程序是一个Java / Spring Boot应用程序,其中我的endpoint是一个person query——如下所示 现在,在应用程序启动时,我加载personQuery,然后构建Schema。(

  • 我一直在试图找到一种为webflux应用程序设置上下文路径的方法。我知道我可以使用 如果我部署一个servlet,但我希望使用webflux实现它,而不必显式地向每个路由添加路径或使用MVC。

  • 我是Spring MVC的新手。尝试使用安全登录构建项目,但无法在tomcat中启动. war。 失败-无法启动上下文路径/员工处的应用程序 我检查了libraris的复制品,如us log4j和slf4j 请帮我理解原因,提前谢谢。 pom。xml TOMCATlocalhost日志显示: 此类用于控制对Mysql的查询 这是我的申请表ontext.xml