dnsjava network error 解决办法

问题背景:

在写邮件服务器时,需要对外部SMTP服务器进行通信,那么就用到DNS解析。dnsjava.jar这个包封装了大量DNS解析查询需要用的方法。

但在查询邮件交换记录时,返回的查询结果为null,getErrorString()得到的network error;但是用命令行>nslookup 163.com,成功获得结果。可以确定是程序的问题,或者的dnsjava包的问题。


解决过程:用以下单元测试代码排错。

import org.xbill.DNS.Lookup;
import org.xbill.DNS.Record;
import org.xbill.DNS.TextParseException;
import org.xbill.DNS.Type;
import java.util.*;

public class lookup
{
	static public void main(String args[]){
		Record[] records;
		String domain = "163.com";
		try {
			
			//查询邮件交换记录
			Lookup lookup = new Lookup(domain, Type.MX);
			lookup.run();
			if (lookup.getResult() != Lookup.SUCCESSFUL){
			    System.out.println("ERROR: " + lookup.getErrorString());
			    //return;
			}
			Record[] answers = lookup.getAnswers();
			for(Record rec : answers){
			    System.out.println(rec.toString());

		} catch (TextParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}		
		return;
	}
}

引用:In Brian's own words - "The exception is because dnsjava is unable to determine the name server that it should be sending to, and is falling back to the local machine, which is likely not running a name server. Modern versions of dnsjava use the sun.net.dns.ResolverConfiguration class to determine this, which works much better than the prior Windows-specific code, but the version of dnsjava you're using predates that." 

I checked using a later version (2.1.3) and all went well. 

出自:http://www.coderanch.com/t/585844/java/java/org-xbill-DNS-Lookup-error


下载dnsjava-2.1.3.jar并引入,项目会报错,是因为在2005年1月以后的dnsjava版本已经不封装dns类,不能直接调用。选用其他方法即可。

         使用2.1.3版本后就成功查询到MX记录了。wonderful!


感叹一句:原来的dnsjava包的版本也太老了吧!至少不是同一个世纪的。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信小程序在网络连接不可用时,会出现网络错误(NetworkError)的提示。这种情况下,我们可以采取以下措施来解决问题。 首先,检查网络连接。确保设备的网络连接正常,并且可以正常访问其他网站或使用其他网络相关的应用程序。如果网络连接存在问题,可以尝试重新连接WiFi或移动数据网络,或者联系网络服务提供商进行解决。 其次,检查小程序自身的代码和接口。网络错误可能是由于小程序中的代码问题或者接口调用错误引起的。可以检查代码中是否存在网络请求的错误或者异常处理的不完善情况。另外,还可以检查小程序所调用的接口是否正常运行,是否有相关的故障或维护通知。 此外,可以尝试清除小程序的缓存。有时候,小程序的缓存可能会导致网络错误的出现。可以进入微信设置,找到“通用”选项,然后点击“清空缓存”按钮,清除小程序的缓存数据。清除缓存后,重新打开小程序,看是否能够解决网络错误的问题。 最后,如果以上方法都没有解决问题,可以尝试重启设备。有时候,设备的网络模块可能会出现异常,导致网络错误的出现。通过重启设备可以尝试重新建立网络连接,可能会解决问题。 总之,解决微信小程序的网络错误可以通过检查网络连接、检查代码和接口、清除缓存以及重启设备等方法来尝试解决。如果问题依然存在,可以联系微信小程序的开发者或技术支持进行进一步排查和解决。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值