对于在Glassfish 3.1.2.2 Web应用程序上下文路径(Context path for

2019-06-26 20:59发布

我试图找到一种方法来显式地指定的Web应用程序部署到GlassFish 3.1.2.2上下文路径,但到目前为止我没有运气。 任何人都可以在此提供指导? 的背景是​​以下:

我有一个由两个单独的Netbeans(7.0)项目的Web应用程序。 首先是一个Web服务,被称为FooWS。 第二个是使用所述web服务FooWS用户面向web应用程序。 这就是所谓的FooApp。

我最近在解决其他一些问题,希望升级GlassFish在3.1.2.2,现在当我部署FooWS应用程序,它成功但与上下文路径/网络部署,而不是/ FooWS。 这不是我会特别在意,只是当我尝试部署FooApp,GlassFish还试图部署到/ WEB导致以下错误:

严重:异常而加载该应用:java.lang.Exception的:WEB0113:虚拟服务器[服务器]已经具有一个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.xml中的上下文路径,但我无法找到这样做的任何方式。 有什么建议?

只是一些跟进,我不小心改变了上下文路径为/ FooW。 这一次,它部署有望/ FooW。 更改回来,如果/ FooWS导致旧行为返回,也就是说,它再次部署到/网页。 好像我有一时还解决方法。

对于任何的下列这样做的好处,我得到3.1.2相同的行为。 现在我已经回到3.1(B43),并将其行为与预期相同。

Answer 1:

添加的GlassFish-web.xml文件在同一文件夹中的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>


文章来源: Context path for web application on Glassfish 3.1.2.2