试图避免在这里重新发明车轮。我准备部署一个Google Web Toolkit页面,但与我通信的Web服务在部署的服务器上的相对地址与本地测试机器不同。GWT的服务器端配置
因此,我正在寻找一种简单的方法来部署一些容易编辑的配置文件,我可以将基本设置放在服务器端。我有一些关于如何做到这一点的想法,但它们看起来有些不合适,而且在我看来,似乎必须已经有针对此类问题的解决方案(毕竟,每个服务器设置是非常常见的事情!)
有没有想法?
编辑:由于这似乎并没有成为倍受关注,让我概括我最初的想法:存储静态文件,局部的,我与其他任何逻辑之前AJAX调用查询GWT文件。当文件返回时,我解析出数据并将它们存储为全局可访问的变量,然后允许页面构建逻辑运行。看起来很笨重,并且在加载之前等待AJAX返回有很大的不利之处,但它会起作用。有更好的建议吗? (请?)
我的解决方案: 我发现我自己的解决方案,但它是非常具体的,以我的确切的情况,所以我不知道这将是给广大用户多么有用。无论如何,我会在这里发布它,因为有人认为它很有用。
我正在处理的页面实际上是嵌入在ASP.net站点中的GWT控件。利用这一点,以及我发现的GWT词典类,我把这样一个“设置”系统放在一起:
首先,我想要的设置(在这种情况下,一个web服务的地址)设置在ASP .NET Web.Config文件
<appSettings>
<add key="serviceUrl" value="http://mySite.com/myService.asmx"/>
</appSettings>
在ASP页面中嵌入真实的GWT控制,我添加了一个“静态”的JavaScript包含的配置设置对象,我需要:
<head runat="server">
<title>Picklist Manager</title>
<script type="text/javascript" language="javascript">
var AppConfig = {
serviceUrl: "<%= ConfigurationManager.AppSettings["serviceUrl"] %>"
};
</script>
<script type="text/javascript" language="javascript" src="gwtcontrol.nocache.js"></script> <!-- Include my GWT control -->
</head>
最后,在GWT我创建了一个静态的“AppConfig”类来公开此设置,如下所示:
public class AppConfig {
public static String serviceUrl = "defaultUrl";
public static void Initialize() {
Dictionary appConfig = Dictionary.getDictionary("AppConfig");
if(appConfig == null) { return; }
servicePath = appConfig.get("serviceUrl");
}
}
从那里,我可以在我的代码任何地方调用AppConfig.serviceUrl获得设置... 噢!所以是的,这是一个很长很复杂的方法,但它适用于我。给出的答案亚历山大看起来最符合我所寻找的内容,所以奖金贴在他身上,但是要感谢所有在我的粘性小问题上投入的人!
你的第二个环节的工作:)我第一个想到的是刚刚格式化滑稽,但它跨越获取点。我会研究这种方法... – Toji 2009-09-21 19:53:36
哇...这是一个相当复杂的例子。我不确定我应该看哪个部分。我知道PropertyOracle是我通过Generator获得的东西,但Generator对我做了什么,以及我将如何使用它?阅读这些东西通常都很不错,但我觉得在这种情况下我缺乏很多背景知识。 :( – Toji 2009-09-21 20:07:05
我反正需要这个项目,所以我现在就去挖掘它吧。 – 2009-09-22 09:00:47