gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:05:12 25 4
gpt4 key购买 nike

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

我有一个由两个独立的 Netbeans (7.0) 项目组成的 Web 应用程序。第一个是 Web 服务,称为 FooWS。第二个是面向用户的 Web 应用程序,它使用 FooWS Web 服务。它叫做 FooApp。

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

严重:加载应用程序时出现异常: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),它的行为符合预期。

最佳答案

在与 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>

关于java - Glassfish 3.1.2.2 上 Web 应用程序的上下文路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11853901/

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