设置反向代理后,无法使用GWT更改窗口标题

时间:2016-04-07 12:20:05

标签: apache tomcat gwt

我目前正在为我的学院开发一个GWT应用程序(源代码:https://github.com/eufarn7sp/asmm-eufar-java)。出于测试目的,我在我自己的服务器上安装了Tomcat 8(业余的东西,托管已经是一个apache php服务器,为我和我的朋友提供一个php论坛,没什么关键),并在其上部署我的应用程序。可通过以下链接访问:http://176.31.165.18:8080/asmm-eufar/

由于我想删除URL(反向代理)中的IP地址和端口号,我按照教程激活了apache的mod_proxy。这是链接:http://www.orion-universe.eu/asmm-eufar/。 99%的应用程序都可以正常工作。但似乎我的应用程序无法在浏览器选项卡中修改标题。它应显示“ASMM Creator”并在用户修改表单后进行更新。我使用通常的命令来设置窗口标题:

Window.setTitle("blablabla");

由于我不是服务器管理方面的专家,我无法在这里看到我做错了什么。这是我在apache的conf文件中使用的代码:

<VirtualHost *:80>

     ServerName orion-universe.eu

     ProxyRequests On
     ProxyPass /asmm-eufar http://localhost:8080/asmm-eufar
     ProxyPassReverse /asmm-eufar http://localhost:8080/asmm-eufar

     <Location "/asmm-eufar">
     Order allow,deny
     Allow from all
     </Location>

</VirtualHost>

2 个答案:

答案 0 :(得分:0)

服务器无法控制标题的设置或更改方式。

相反,您的代理服务器之外的其他内容正在发生 - 您的orion-universe.eu服务器实际上并未代理该调用,而是显示一个只有<iframe>的HTML页面...然后指向该页面在原始页面:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
  <head>
    <title>www.orion-universe.eu</title>
  </head>
  <frameset>
    <frame src="http://176.31.165.18/asmm-eufar/" name="redir">
    <noframes>
      <p>Original location:
        <a href="http://176.31.165.18/asmm-eufar/">http://176.31.165.18/asmm-eufar/</a>
      </p>
    </noframes>
  </frameset>
</html>

然后会在框架中加载http://176.31.165.18/asmm-eufar/,因此无法控制外部页面的标题(这就是加载http://176.31.165.18/asmm-eufar/http://www.orion-universe.eu/asmm-eufar/的原因不同的原因最初的头衔)。

您的proxy-pass 看起来是正确的,但其他原因导致了这一点 - 找出iframe的html文件的位置,并查看可能导致您的服务器为其提供服务的原因。

在重新阅读proxypass时,有一件事突然出现在我身上:你正在重定向到localhost:8080,但是你的服务器并没有在那里运行:

 ProxyPass /asmm-eufar http://localhost:8080/asmm-eufar

你的意思是说

 ProxyPass /asmm-eufar http://176.31.165.18:8080/asmm-eufar

第二行相同。这似乎假设您有两个不同的服务器,一个是另一个的代理,但仍然没有说明为什么显示iframe,除非localhost:8080正在服务?

答案 1 :(得分:0)

尝试使用Document.get().setTitle(title);我假设您指的是文档窗口。