2012-07-20 37 views
5

के साथ जावा वेबस्टार्ट प्रमाणपत्र समस्या हाय मुझे जावा वेबस्टार्ट के साथ कोई समस्या है। हम एक JNLP विन्यास जहां संस्करण यानी सक्षम किया गया है हवलदार:जेएनएलपी संस्करण

<property name="jnlp.versionEnabled" value="true"/> 

और हम एक जार जैसे की संस्करण संख्याओं का उपयोग कर रहे हैं:

<jar href="project.jar" version="2.5.7.0"/>

हम भी एक मेवेन जार साइनर प्लगइन का उपयोग कर हमारे आवेदन जार पर हस्ताक्षर कर रहे हैं।

अब तक आप सभी अच्छे हैं।

अच्छी तरह से जब भी हम एप्लिकेशन की एक नई रिलीज करते हैं, हम प्रत्येक जार के लिए जेएनएलपी फ़ाइल को नए संस्करण संख्याओं के साथ बदलते हैं (सभी जार संस्करण नहीं बदलते हैं) लेकिन प्रोजेक्ट के साथ। उदाहरण के ऊपर उदाहरण इस संस्करण संख्या को कहते हैं 2.5.7.0 से 2.5.7.1 तक बढ़ाया गया है। उदाहरण के लिए

<jar href="project.jar" version="2.5.7.1"/>

हमारे उपयोगकर्ताओं JNLP फ़ाइल वे निम्न त्रुटि प्राप्त के माध्यम से नए आवेदन डाउनलोड करते हैं:

#### Java Web Start Error: 
#### JAR resources in JNLP file are not signed by same certificate 

मैं Webstart करने के लिए अतिरिक्त डीबग जोड़ लिया है और जावा Concole में निम्न त्रुटि पाया है:

security: Validating cached jar url=http://servername/lib/project_V2.5.7.1.jar ffile=C:\Documents and Settings\username\Application Data\Sun\Java\Deployment\cache\6.0\10\57344cca-719709af-2.5.7.1- [email protected] 
security: Have 0 common certificates after processing http://servername/lib/project.jar 
network: Remove cache entry: http:///lib/project__V2.5.7.1.jar 

ऐसा प्रतीत होता है कि वेबस्टार्ट प्रोजेक्ट_वी 2.5.7.1.jar नामक जार के लिए स्थानीय कैश की जांच करने का प्रयास कर रहा है (जो मौजूद नहीं है), क्योंकि यह नई रिलीज/डाउनलोड का हिस्सा है।

यह जार यह मानता है कि प्रमाण पत्र से मेल नहीं खाते नहीं मिल सकता है के रूप में - इसलिए त्रुटि:

JAR resources in JNLP file are not signed by same certificate. 

मैं यह सोचते हैं रहा है कि इस Webstart त्रुटि है! जो हमें बहुत दर्द का कारण बन रहा है क्योंकि प्रत्येक उपयोगकर्ता के लिए प्रत्येक रिलीज से पहले हमें वेबस्टार्ट कैश को मैन्युअल रूप से साफ़ करना होगा।

किसी को भी ऐसी ही समस्या है?

+0

क्या आपने कभी इस समस्या को हल करने का प्रबंधन किया है? मुझे बिल्कुल वही बात मिली है –

उत्तर

1

मुझे लगता है कि मेरे अनुभव के आधार पर क्या हो रहा है यह है कि एक बार जब आप संस्करण संख्या 2.5.7.0 से 2.5.7.1 तक बढ़ाते हैं और आप पुराने मैनिफेस्ट एंट्री को हटाए बिना फिर जार पर हस्ताक्षर करते हैं तो वेबस्टार्ट सोचता है कि संसाधनों को एक ही प्रमाण पत्र द्वारा हस्ताक्षरित नहीं किया जाता है। एक चीज जो आप कोशिश कर सकते हैं जो मदद कर सकती है:

Unzip the jar causing trouble, purge all META-INF directories from it, jar it and sign it again.

इससे मदद मिलती है अगर यह मदद करता है।

+0

नमस्ते हम हमेशा जार फिर से साइन-इन करते हैं। तो जार में कोई पुरानी अभिव्यक्ति फ़ाइल नहीं है - इसलिए मुझे नहीं लगता कि यह मुद्दा है ... – user1539726

0

अपने प्रश्न प्रति "ठीक है हर बार जब हम आवेदन हम एक जार (सभी नहीं जार संस्करणों को बदलने) के लिए नया संस्करण संख्या के साथ JNLP फ़ाइल को बदलने की नई रिलीज़ करते हैं"

तो तुम संस्करण बदल दिया अन्य जारों के लिए भी संख्या?

जब आप जार फ़ाइलों पर हस्ताक्षर करने के लिए नए प्रमाणपत्र का उपयोग करते हैं, तो आपको सभी जार फ़ाइलों के लिए संस्करण संख्या बदलनी होगी, अन्यथा समान संस्करण संख्या वाले जार फाइलें, लेकिन नए प्रमाणपत्र द्वारा हस्ताक्षरित, डाउनलोड नहीं किया जाएगा और समस्या का कारण बन जाएगा।

0

मैंने अपनी जेएनएलपी फ़ाइल पर दो जेआर फाइलों को भी शामिल किया, जिसमें मैंने अपने जार के लिए इस्तेमाल किया था।

<?xml version="1.0" encoding="utf-8"?> 
<jnlp spec="1.0+" codebase="http://10.37.177.100:8085/AFM/resources/client/" href="AFMTray.jnlp"> 
<information> 
    <title>AFMTray</title> 
    <vendor>andreagirardi.it</vendor> 
</information> 

<security> 
    <all-permissions /> 
</security> 

<resources> 
    <j2se version="1.4+" /> 
    <jar href="AFMTray.jar" /> 
    <property name="jnlp.versionEnabled" value="true"/> 
</resources> 

<resources os="Windows" arch="x86"> 
    <jar href="swt-windows.jar" /> 
</resources> 

<resources os="Mac\ OS\ X" arch="x86_64"> 
    <jar href="swt-osx.jar" /> 
</resources> 

<resources os="Mac\ OS\ X" arch="i386 x86"> 
    <jar href="swt-osx.jar" /> 
</resources> 

<application-desc main-class="com.afm.TryLuncher" /> 

<shortcut online="true"> 
    <desktop/> 
    <menu submenu="Esecuzione automatica"/> 
</shortcut> 

तो, मैं SWT-osx.jar और SWT-windows.jar एक ही प्रमाण पत्र के साथ के लिए इस्तेमाल किया AFMTray.jar पर हस्ताक्षर किए:

यह मेरा jnlp फ़ाइल है

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