我已部署了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 上对我的项目进行休整?
答案 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配置为使用根上下文。但是最好不要依赖于此。