我试图找到一种方法来显式地指定的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),并将其行为与预期相同。