jdk1.6

2010-05-18 7 views
8

में एंडॉर्स्ड निर्देशिका का उपयोग करने का सही तरीका क्या है, मैं अपने जैक्स कर्मचारियों को 2.2 में अपग्रेड करना चाहता हूं (jdk1.6 jaxws 2.1 के साथ बंडल किया जाता है)। मेरे JDK (मैं सार्वजनिक JRE स्थापित नहीं किया है):jdk1.6

एक तरीका यह कॉपी करने के लिए jaxws-api.jar और JAXB-api है ठीक करने के लिए:

java version "1.6.0_20" 
Java(TM) SE Runtime Environment (build 1.6.0_20-b02) 
Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode) 

jaxws' own doc में वे इसे कैसे करना समझाने। जेआर एंड्रॉइड निर्देशिका में जार, जो $JAVA_HOME/lib/endorsed (or $JDK_HOME/jre/lib/endorsed)

लेकिन मुझे यकीन नहीं है कि यह मेरी स्थापना में कोई प्रभाव नहीं डाल रहा है। शुरुआत के लिए मैंने केवल %JAVA_HOME% परिभाषित किया है। और फ़ोल्डर $JAVA_HOME/lib/endorsed सहायक है, इसलिए मैंने दो जार बनाया और कॉपी किया। लेकिन अगर मैं ऐसा

wsgen -version 

मैं अभी भी (wsgen jaxws से एक उपकरण है):

JAX-WS RI 2.1.6 in JDK 6 

मैं भी फ़ोल्डर JAVA_HOME\jre\lib\endorsed (ध्यान दें कि डॉक वे JDK_HOME कहना में बनाने की कोशिश की लेकिन जैसा कि मैंने केवल JAVA_HOME है मैंने इस पथ का उपयोग किया)। अभी भी वही wsgen आउटपुट।

मेरे प्रश्न हैं:

  1. डॉक पेज में JAVA_HOME और JDK_HOME के ​​बीच क्या अंतर है? JAVA_HOME को संदर्भित करने के लिए कुछ महत्वपूर्ण या केवल दो तरीके?
  2. क्या 'wsgen -version' उपयोग किए जाने वाले जैक्सव्यू संस्करण की जांच करने का एक वैध तरीका है या यह हमेशा मूल जेडीके में exe को कॉल करता है, लेकिन इसका मतलब यह नहीं है कि अनुमोदित जार का उपयोग किया जाएगा?
  3. कोई भी बहुत विस्तृत कदम jdws.1.2 में jaxws2.2 स्थापित करने के लिए जानता है?

मैं this post मैं क्या देख रहा हूँ के बारे में कुछ संकेत है कि पाया मुझे लगता है कि

उत्तर

0

जेआर में शामिल wsimport और wsgen jre/bin निर्देशिका में exe के रूप में स्थित हैं और यदि आप अभी भी इसे कमांड लाइन से कॉल करते हैं, तो यह अभी भी जैक्स-डब्ल्यूएस 2.1 कार्यान्वयन चलाएगा।

जैक्स-डब्ल्यूएस 2.2 को अपडेट करने के लिए, आपको jaxws वेबसाइट से संबंधित जेएक्स-डब्ल्यूएस 2.2.एक्स आरआई डाउनलोड करने की आवश्यकता है।

आपको सामग्री को अपने कंप्यूटर पर निकालने की आवश्यकता है।

तुम भी बजाय wsgen.exe या wsimport.exe का उपयोग करने का समर्थन किया निर्देशिका में jaxws-api.jar और JAXB-api.jar कॉपी करने के लिए (आपके मूल विवरण के अनुसार)

हालांकि, जरूरत है (के रूप में आपके प्रोजेक्ट पर लागू), अब आपको जैक्स-डब्ल्यू 2.2 अपडेट/डाउनलोड में दिए गए एक का उपयोग करने की आवश्यकता है।

jaxws-ri निर्देशिका में जो आपने अपने JAX-WS 2.2 डाउनलोड से निकाला है, आपको एक बिन निर्देशिका और 4 फ़ाइलें (wsgen.bat, wsgen.sh, wsimport.bat, wsimport.sh) दिखाई देगी और ये वे हैं जिन्हें आपको इसके बजाए चलाने की आवश्यकता है।

उन्हें चलाने के लिए, आपको JAXWS_HOME पर्यावरण चर सेट अप करना होगा (विवरण के लिए wsgen/wsimport.bat/sh फ़ाइलें देखें)।

कि अब, आप JDK 1.6

+0

धन्यवाद! जैसा कि आप अनुमान लगा सकते हैं कि मुझे प्रश्न के 6 साल बाद की आवश्यकता नहीं है :) लेकिन शायद किसी की मदद कर सकता है – Persimmonium

1

यह अपने वातावरण चर से बंधा नहीं है। % JAVA_HOME% प्रलेखन में सिर्फ लघुरूप है जो यह नहीं जानता कि आपने जावा को इंस्टॉल किया है या आपने जावा का किस संस्करण को इंस्टॉल किया है।

% JAVA_HOME% एक जेआरई (नियमित रनटाइम गैर-डेवलपर होगा) को संदर्भित करता है। % जेडीके_एचओएमई% एक जेडीके, एक जावा डेवलपमेंट किट की रूड निर्देशिका को संदर्भित करता है, जो कुछ डेवलपर उपयोग करेगा।

इससे भी अधिक, आपको यह जानना होगा कि जब आप wsgen चलाते हैं, जहां से इसे चलाया जा रहा है, और संबंधित JVM को अनुमोदित निर्देशिका के साथ कॉन्फ़िगर किया गया है जिसमें जार शामिल हैं।

+0

साथ JAX-WS 2.2 चलाने के लिए कोई फर्क नहीं पड़ता, जहां wsgen रन किया जा रहा है की अनुमति चाहिए जैसा कि मैंने रास्ते में JAVA_HOME% \ बिन है। तो wsgen.exe हमेशा वहां में एक होगा। लेकिन मुझे उम्मीद थी कि यह अनुमोदित डीआईआर या कुछ – Persimmonium

+1

में जार लोड करेगा सवाल यह है कि कैसे समर्थन करना है? –

11

आपको सिस्टम प्रॉपर्टी java.endorsed.dirs, उदाहरण के लिए जांच करनी चाहिए System.getProperty("java.endorsed.dirs") पर कॉल करके। विंडोज मशीन पर, यह आमतौर पर C:\Program Files\Java\jdk1.6.0_16\jre\lib\endorsed जैसा कुछ होता है। उन जार फ़ाइलों को रखो जिन्हें आप यहां समर्थन देना चाहते हैं। यदि वह निर्देशिका मौजूद नहीं है तो इसे बनाएं।

एक और विकल्प जार को अपनी पसंद की निर्देशिका में रखना है, लेकिन कमांड लाइन स्विच -Djava.endorsed.dirs=<Your endorsed jars directory> जोड़कर सिस्टम प्रॉपर्टी को ओवरराइड करना है।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^