如何在端口之后的URL中使用应用程序名称(如我们在tomcat部署的应用程序中所做的那样)以在GWT应用程序中调用其余Web服务?

时间:2018-07-04 11:30:33

标签: java rest gwt

我已部署了GWT应用程序,并且正在通过调用运行配置(运行->运行配置-> Web应用程序->创建新配置->运行)来运行该应用程序。现在,此过程通常在以下URL上部署项目: http://127.0.0.1:49240/GWTSample.jsp

但是现在,我已经在我的项目中集成了rest Web服务,它具有一个用于REST调用的URI,如下所示: / GWTSample / rest / hello

但是当我将实际URL修改为此: http://127.0.0.1:49240/GWTSample/rest/hello 时,该URL不起作用。

作为一个长解决方案,我必须编译我的项目并将其按照以下URL部署在Tomcat上: http://localhost:8080/GWTSample/rest/hello ,每次都要花费10多分钟。 那么如何在 http://127.0.0.1:49240/GWTSample.jsp 上对我的项目进行休整?

1 个答案:

答案 0 :(得分:1)

如果您的主页和REST Servlet位于同一Web应用程序中,则URL相对于Web应用程序上下文是恒定的。

显然,您的开发模式服务器使用根上下文"/"。因此,您的开发URL路径为"/GWTSample.jsp""/rest/hello"。但是您的外部Tomcat使用"GWTSample"作为上下文,这会导致URL路径为"/GWTSample/GWTSample.jsp"(用于主页)和"/GWTSample/rest/hello"(用于REST服务)。

要从GWT应用程序调用REST服务,可以使用相对URL,也可以在运行时在服务器端确定上下文路径(请参见ServletContext.getContextPath()),然后将此路径传递给GWT应用程序(例如,将其集成)进入主页)。

上下文本身是部署详细信息。当然,您也可以将Tomcat配置为使用根上下文。但是最好不要依赖于此。