मेरे पास Ubuntu64 9.04 पीसी पर कई जावा एप्लिकेशन इंस्टॉल हैं, और उनमें से कोई भी डोमेन नामों को हल नहीं कर सकता है (इसमें कई जेआरई भी हैं - उनमें से कुछ आईबीएम उत्पाद हैं)। यदि मैं मेजबान फ़ाइल में डोमेन नाम को उसके संबंधित आईपी पते के साथ डालता हूं, तो जावा ऐप्स केवल उन डोमेन के लिए काम करता है। अन्य सभी गैर जावा प्रोग्राम - जैसे पिंग, फ़ायरफ़ॉक्स, आदि - डोमेन रिज़ॉल्यूशन के साथ बस ठीक काम करते हैं। मैंने java.security फ़ाइल में DNS कैशिंग को अक्षम करने का प्रयास किया है - मेरे सभी जेआरई के लिए - लेकिन यह भी काम नहीं करता है। मैं इसे समझने में कुछ मदद की सराहना करता हूं। धन्यवाद!डोमेन नाम संकल्प Ubuntu64 9.04 मशीन पर जावा अनुप्रयोगों में काम नहीं कर रहा है। अन्य सभी सॉफ़्टवेयर DNS को सही ढंग से हल करते हैं
अद्यतन: मुझे यकीन है कि मेरे घर या कार्यालय में एक प्रॉक्सी सर्वर नहीं है हूँ। - मैं आपको यहां मेरी मदद करने वाले लोगों की सराहना करता हूं। मैं वास्तव में विंडोज़ के बजाय लिनक्स का उपयोग करना चाहता हूं कि मैं फिर से जावा विकास कर रहा हूं।
[email protected]:~$ cat /etc/resolv.conf
# Generated by NetworkManager
domain hsd1.in.comcast.net.
search hsd1.in.comcast.net.
nameserver 192.168.0.1
[email protected]:~$ env | grep -i proxy
[email protected]:~$ dig google.com
; <<>> DiG 9.5.1-P2 <<>> google.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56845
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 58 IN A 74.125.53.100
google.com. 58 IN A 74.125.45.100
google.com. 58 IN A 74.125.67.100
;; Query time: 35 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: Thu Oct 22 13:37:26 2009
;; MSG SIZE rcvd: 76
अद्यतन: मैं रेड में इस जावा कार्यक्रम ने लिखा है:
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.io.PrintWriter;
import java.io.StringWriter;
public class DomainResolutionTest {
public static void main(String[] args) {
if (args.length == 0) args = new String[] { "www.google.com" };
try {
InetAddress ip = InetAddress.getByName(args[0]);
System.out.println(ip.toString());
}catch (UnknownHostException uhx) {
System.out.println("ERROR: " + uhx.getMessage() + "\n" + getStackTrace(uhx));
Throwable cause = uhx.getCause();
if (cause != null) System.out.println("CAUSE: " + cause.getMessage());
}
}
public static String getStackTrace(Throwable t)
{
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw, true);
t.printStackTrace(pw);
pw.flush();
sw.flush();
return sw.toString();
}
}
उत्पादन होता है:
ERROR: www.google.com
java.net.UnknownHostException: www.google.com
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:862)
at java.net.InetAddress.getAddressFromNameService(InetAddress.java:1213)
at java.net.InetAddress.getAllByName0(InetAddress.java:1166)
at java.net.InetAddress.getAllByName(InetAddress.java:1096)
at java.net.InetAddress.getAllByName(InetAddress.java:1032)
at java.net.InetAddress.getByName(InetAddress.java:982)
at DomainResolutionTest.main(DomainResolutionTest.java:12)
कमांड लाइन से: (एक ही परिणाम)
[email protected]:~$ javac DomainResolutionTest.java
[email protected]:~$ java DomainResolutionTest
ERROR: www.google.com
java.net.UnknownHostException: www.google.com
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:849)
at java.net.InetAddress.getAddressFromNameService(InetAddress.java:1200)
at java.net.InetAddress.getAllByName0(InetAddress.java:1153)
at java.net.InetAddress.getAllByName(InetAddress.java:1083)
at java.net.InetAddress.getAllByName(InetAddress.java:1019)
at java.net.InetAddress.getByName(InetAddress.java:969)
at DomainResolutionTest.main(DomainResolutionTest.java:12)
[email protected]:~$ java -version
java version "1.6.0_16"
Java(TM) SE Runtime Environment (build 1.6.0_16-b01)
Java HotSpot(TM) Server VM (build 14.2-b01, mixed mode)
[email protected]:~$
त्रुटि क्या है? क्या आप एक स्पष्ट DNS क्वेरी बना रहे हैं या बस मशीन से कनेक्शन बनाने का प्रयास कर रहे हैं? मुझे लगता है कि आपकी समस्या पर्यावरण या प्रोग्राम-विशिष्ट होना चाहिए क्योंकि मुझे 64-बिट उबंटू 9.04 पर ऐसी कोई समस्या नहीं है। –
मेरे पास आईबीएम तर्कसंगत अनुप्रयोग डेवलपर है, और ओरेकल एसक्यूएल डेवलपर लोड किया गया है। दोनों एक अलग जेवीएम का उपयोग करें। हालांकि, उनमें से दोनों DNS नामों का समाधान नहीं करेंगे। आरएडी में, जो मूल रूप से ग्रहण है, आप वेब से उत्पाद को अपडेट करने के लिए यूआरएल का उपयोग करते हैं। उनमें से कोई भी हल नहीं करता है। उसी समय, मैं यूआरएल को फ़ायरफ़ॉक्स में डाल सकता हूं और वेबसाइट सही हो जाती है! ओरेकल एसक्यूएल डेवलपर में, मुझे एक ही समस्या है। ओरेकल डीबी के साथ हमारे नेटवर्क पर एक सर्वर चल रहा है। मैं कमांड लाइन से डोमेन नाम को ठीक कर सकता हूं। हालांकि, मैं केवल आईपी पते के माध्यम से उस डेटाबेस से कनेक्ट कर सकता हूं। पागलपन! –
क्या आपने InetAddress.getByName का उपयोग करने का प्रयास किया है? क्या आपके पास फ़ायरफ़ॉक्स में प्रॉक्सी सेट अप है? क्या आप wget या curl का उपयोग कर सर्वर से पृष्ठों को पुनर्प्राप्त कर सकते हैं? –