GF 3.0.1 +虚拟服务器:www.myhost.com:8080/projectname -war => www.myhost.com.怎么样?

Tha*_*ham 3 glassfish application-server java-ee glassfish-3

编辑

我需要换www.myhost.com:8080/myproject-warwww.myhost.com.这是我一直在尝试的:

我说明了Virtual Server: server.我仍然有默认的网络侦听器是http-listener-1和http-listner-2.我将默认Web模块更改为ScholarActive#ScholarActive-war.war(下拉列表中的唯一选项,因为我只部署了1个应用程序).

对于docroot,我试试这个

${com.sun.aas.instanceRoot}/applications/ScholarActive/ScholarActive-war_war
Run Code Online (Sandbox Code Playgroud)

或这个

${com.sun.aas.instanceRoot}/applications/ScholarActive/
Run Code Online (Sandbox Code Playgroud)

两者都不起作用.docroot需要指出什么才能实现?

我尝试做的是:当我键入localhost:8080/ScholarActive-war,然后我的应用程序加载,我想这样做,如果我键入locahost:8080,它将加载应用程序,然后剩下的是改变了港口到80.但没有运气.任何的想法?

Bri*_*hem 6

如果您可以以root身份运行glassfish,只需编辑domain.xml文件,将端口8080更改为端口80.

如果你不想以root身份运行glassfish(你不应该这样做),那么你可以使用apache前面的glassfish.我写了关于在apahce httpd后面运行glassfish v2和v3的博客.

或者,您可以使用iptables将所有流量从端口80路由到端口8080,如下所示:

iptables -t nat -A OUTPUT -o lo -p tcp --dport 80 -j REDIRECT --to-port 8080 
Run Code Online (Sandbox Code Playgroud)

至于问题的第二部分 - 删除上下文根,只需要使用"/"上下文根部署应用程序.还有几种方法可以实现这一目标.您可以在部署期间或之后使用管理员Web控制台为Web应用程序设置上下文根.您可以通过命令行进行设置:

asadmin deploy --contextroot "/" webapp.war
Run Code Online (Sandbox Code Playgroud)

或者,您可以将sun-web.xml文件的context-root设置为/.

或者,您可以为虚拟服务器设置默认Web模块,类似于Web管理控制台是端口4848的默认Web模块.我从未尝试过这个.


回答编辑过的问题:要从glassfish管理控制台(localhost:4848)更改默认Web模块,请转到:

Configuration -> Virtual Servers -> server

在那里,您将看到"默认Web模块"的下拉列表.选择已部署的Web应用程序.此应用程序现在将响应根URL.在我自己尝试之后,我注意到我在登录后被重新路由到上下文根目录.这可以通过将我的webapp的上下文roop设置为""/"或者使用


另一种可能性是在apache httpd中使用mod_proxy,并在端口8080上将端口80的"/"映射到"/ myWebApp".这完全避免了上述混乱.