我使用的代码与我在网上找到的代码非常相似,但是出现错误“无法实例化GeoIPService类型”。我在另一个问题here中发现了相同的问题,但从未得到回答。
import net.webservicex.www.GeoIP;
import net.webservicex.www.GeoIPService;
import net.webservicex.www.GeoIPServiceSoap;;
public class CountryFinder
{
public static void main(String[] args)
{
GeoIPService service = new GeoIPService(); // "Cannot instaniate the type GeoServiceIP"
GeoIPServiceSoap port = service.getGeoIPServiceSoap();
System.out.print(port.getGeoIP("1.1.1.1").getCountryName());
}
}
更新:对于使用相同类的任何人,都可以通过实例化GeoIPServiceLocator而不是GeoIPService来解决此问题。
最佳答案
GeoIPService
是一个接口,而不是一个类,因此您必须实例化它的实现,而不是接口本身。
不正确:GeoIPService service = new GeoIPService();
正确:GeoIPService service = new ClassThatImplementsGeoIPService();