2009-08-12 12 views
7

मैं जैक्सबी का उपयोग करके अपवादों को क्रमबद्ध करने के लिए एक समाधान का उपयोग करने की कोशिश कर रहा हूं। (http://forums.java.net/jive/thread.jspa?messageID=256122)पैकेज com.sun.xml.internal.bind.v2.model.annotation मौजूद नहीं है

उस समाधान के लिए मुझे जिस कक्षा को लागू करने की आवश्यकता है, उसे निम्न com.sun कक्षाओं का संदर्भ देने की आवश्यकता है।

import com.sun.xml.internal.bind.v2.model.annotation.AbstractInlineAnnotationReaderImpl; 
import com.sun.xml.internal.bind.v2.model.annotation.Locatable; 
import com.sun.xml.internal.bind.v2.model.annotation.RuntimeAnnotationReader; 
import com.sun.xml.internal.bind.v2.model.annotation.RuntimeInlineAnnotationReader; 

जब मैं ग्रहण के अंदर अपना कोड संकलित और चलाता हूं तो यह ठीक काम करता है। लेकिन जब मैं मेवेन का उपयोग करके कोड संकलित करता हूं तो यह com.sun संकुल जैसे पैकेज "com comun.xml.internal.bind.v2.model.annotation मौजूद नहीं है" के बारे में शिकायत करने में विफल रहता है।

ग्रहण और मेवेन दोनों जेडीके 1.6 का उपयोग कर रहे हैं, इसलिए मुझे नहीं पता कि यह क्यों हो रहा है। जेडीके के अंदर उन com.sun कक्षाएं नहीं हैं?

संपादित करें: मैंने अंततः निर्णय लिया कि यह संभव नहीं था। मैंने बस एक नई बीन बनाई और मुझे आवश्यक जानकारी पर कॉपी किया और इसका इस्तेमाल किया।

उत्तर

16

यदि कोई वर्ग पैकेज में है com.sun। *, इसका मतलब है कि यह सूर्य द्वारा विकसित किया गया था, न कि यह जेडीके का हिस्सा है।

जेडीके में सूर्य वर्ग सूरज प्रीफिक्स्ड हैं। * और सार्वजनिक समर्थित इंटरफ़ेस का हिस्सा नहीं हैं इसलिए देखभाल के साथ उपयोग किया जाना चाहिए। Sun FAQ से:

सूर्य 2 जावा एसडीके, मानक संस्करण के साथ सूर्य कक्षाएं पैकेज समूह जावा में आती हैं। , जावैक्स।, संगठन। * और सूर्य। । सूरज के अलावा सब कुछ। पैकेज जावा प्लेटफॉर्म का एक मानक हिस्सा हैं और भविष्य में समर्थित होंगे। सामान्य रूप से, सूर्य जैसे पैकेज। , जो जावा प्लेटफ़ॉर्म के बाहर हैं, ओएस प्लेटफ़ॉर्म (सोलारिस, विंडोज, लिनक्स, मैकिंटोश इत्यादि) में अलग-अलग हो सकते हैं और एसडीके संस्करणों (1.2, 1.2.1, 1.2.3) के साथ किसी भी समय बिना किसी सूचना के बदल सकते हैं। आदि)। कार्यक्रम जिनमें सूर्य को सीधे कॉल शामिल है। पैकेज 100% शुद्ध जावा नहीं हैं। दूसरे शब्दों में:

जावा। , जावैक्स। और संगठन। * जावा 2 प्लेटफार्म मानक संस्करण एपीआई विशिष्टता में प्रलेखित संकुल आधिकारिक, समर्थित, सार्वजनिक इंटरफ़ेस बनाते हैं।

यदि जावा प्रोग्राम सीधे इन पैकेजों में केवल एपीआई को कॉल करता है, तो यह अंतर्निहित ओएस प्लेटफॉर्म पर ध्यान दिए बिना सभी जावा-संगत प्लेटफॉर्म पर काम करेगा।

सूर्य। * पैकेज समर्थित, सार्वजनिक इंटरफ़ेस का हिस्सा नहीं हैं।

एक जावा प्रोग्राम जो सीधे सूर्य में कॉल करता है। * पैकेज सभी जावा-संगत प्लेटफ़ॉर्म पर काम करने की गारंटी नहीं है। वास्तव में, इस तरह के एक कार्यक्रम को एक ही मंच पर भविष्य के संस्करणों में भी काम करने की गारंटी नहीं है।

कहा करने के बाद कि, उन वर्गों आप सूचीबद्ध निम्नलिखित विरूपण साक्ष्य में JBoss भंडार पर उपलब्ध हैं:

<dependency> 
    <groupId>javax.xml</groupId> 
    <artifactId>jaxb-impl</artifactId> 
    <version>2.1</version> 
</dependency> 
संबंधित मुद्दे