我一直在玩这个玩了几天并打了一堵砖墙
本自述文件中记录了该问题:
https://github.com/vahidhedayati/grails-localdns/blob/master/README.md
基本上我试图覆盖给定主机名的dns条目...所以最终有一个本地数据库表保存除实际dns以外的条目并覆盖实际的ip到DB上的内容(对于测试目的,其中cetain主机名将用于内部IP)
def index() {
System.setProperty("sun.net.spi.nameservice.provider.1", "dns,"+LocalManagedDnsDescriptor.DNS_PROVIDER_NAME)
System.setProperty("sun.net.spi.nameservice.provider.2", "dns,sun")
Security.setProperty("networkaddress.cache.ttl", "0")
def hostName = "google.com"
def ipAddress = "192.168.1.4"
NameStore.getInstance().put(hostName, ipAddress)
performLookup(hostName)
render "done lookup"
}
基本上无论我尝试什么,LocalManagedDns都没有被触发......
答案 0 :(得分:2)
尝试从命令行设置-Dsun.net.inetaddr.ttl=0
。我记得在某个地方读到的问题是,在JVM尝试配置网络之前,需要先设置此属性。
编辑:我挖掘了我记得读过的来源:https://stackoverflow.com/a/17219327/1446892