修改
我需要将www.myhost.com:8080/myproject-war
更改为www.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
或者
${com.sun.aas.instanceRoot}/applications/ScholarActive/
两者都不起作用。 docroot需要指出什么才能实现?
我尝试做的是:当我输入localhost:8080 / ScholarActive-war,然后我的应用程序加载,我想这样做,如果我输入locahost:8080,它也会加载应用程序,然后还剩下什么将端口更改为80.但没有运气。有什么想法吗?
答案 0 :(得分:6)
如果您可以以root身份运行glassfish,只需编辑domain.xml文件,将端口8080更改为端口80。
如果您不想以root身份运行glassfish(因为您不应该这样),那么您可以使用apache前面的glassfish。我在博客上写了running both glassfish v2 and v3 behind apahce httpd。
或者,您可以使用iptables将所有流量从端口80路由到端口8080,如下所示:
iptables -t nat -A OUTPUT -o lo -p tcp --dport 80 -j REDIRECT --to-port 8080
至于问题的第二部分 - 删除上下文根,只需要使用“/”上下文根部署应用程序。还有几种方法可以实现这一目标。您可以在部署期间或之后使用管理员Web控制台为Web应用程序设置上下文根。您可以通过命令行设置它:
asadmin deploy --contextroot "/" webapp.war
或者您可以将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”。这完全避免了上述混乱。
答案 1 :(得分:0)
在您的Web容器中,您应将/ myproject-war设置为根路径,然后将侦听端口从8080更改为80.重新启动Web容器,如果需要,可以通过http://localhost/
浏览网页改为使用http://www.myhost.com
,添加一行
在您托管文件的末尾www.myhost.com 127.0.0.1
。这只适用于本地网站。
答案 2 :(得分:0)
我认为Glassfish web容器基于tomcat和tomcat,你可以调用你的web应用程序文件ROOT.WAR,它可以做你想要的。尝试调用您的网络应用ROOT.war,看看它是否符合您的要求,并告诉我们。
无法在web.xml中配置您想要的内容,因为它只包含供应商中立设置。您需要更改的设置是特定于应用程序服务器的。如果您编辑帖子并让我们知道您正在使用哪个应用程序服务器,我们可以为您指出如何做您想要的正确方向。
答案 3 :(得分:0)
我经常使用apache和mod_proxy或mod_jk来使用tomcat / jboss / jetty。这样,apache侦听端口80/443,并在端口8080/8443(或8009 for mod_jk)上与j2ee服务器通话。
答案 4 :(得分:0)
此页面为我提供了解决方案。
http://blogs.oracle.com/alexismp/entry/glassfish_tip_have_your_application
但是,我的安全身份验证是jdbcRealm
,在我登录后,glassfish会自动将my-project-war附加到我的URL上。所以
www.myhost.com将提示我登录
我登录后立即成为www.myhost.com/my-project-war
为什么会这样?