द्वारा हस्ताक्षरित जेएनएलपी लॉन्च करते समय "जेएनएलपीएसिंगिंग अपवाद [लॉन्च फ़ाइल पर हस्ताक्षर करने में विफल] प्राप्त करना जारी रखें" हमने this ऑरैक गाइड का पालन करके हमारी जेएनएलपी फाइलों पर हस्ताक्षर करने का निर्णय लिया है। चूंकि हमारे पास अलग जेएनएलपी हैं, इसलिए हम दूसरे दृष्टिकोण के लिए गए (जेएनएलपी टेम्पलेट के साथ एक जेएआर फाइल पर हस्ताक्षर करना)।टेम्पलेट
यहाँ कोड हम टेम्पलेट में निकाली गई है:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="*" href="*">
<information>
<title>*</title>
<vendor>My vendor</vendor>
<description>My description</description>
<icon href="splash.jpg" kind="splash" width="700" height="400" size="115258"/>
<offline-allowed />
<shortcut>
<menu submenu="My submenu"/>
</shortcut>
</information>
<security>
<all-permissions/>
</security>
<resources locale="en es ja">
<j2se version="1.6+" initial-heap-size="128m" max-heap-size="384m" href="http://java.sun.com/products/autodl/j2se"/>
<jar href="myjar.jar" main="true" download="lazy" part="core" size="*"/>
<jar href="lib/commons-lang-2.6.jar" download="lazy" part="commons" size="297085"/>
...
<jar href="lib/trident-6.0.jar" download="lazy" part="core" size="114496"/>
<property name="jnlp.myProperty" value="*"/>
<property name="log4j.configuration" value="*"/>
</resources>
<application-desc main-class="com.mycom.myapp.MyClass">
</application-desc>
</jnlp>
... और यहाँ JNLPs हम वास्तव में उपयोग कर रहे हैं में से एक है:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://mylocation.mycom.com/jnlp/myapp/" href="myapp.jnlp">
<information>
<title>My App - Production version</title>
<vendor>My vendor</vendor>
<description>My description</description>
<icon href="splash.jpg" kind="splash" width="700" height="400" size="115258"/>
<offline-allowed />
<shortcut>
<menu submenu="My submenu"/>
</shortcut>
</information>
<security>
<all-permissions/>
</security>
<resources locale="en es ja">
<j2se version="1.6+" initial-heap-size="128m" max-heap-size="384m" href="http://java.sun.com/products/autodl/j2se"/>
<jar href="myjar.jar" main="true" download="lazy" part="core" size="4189501"/>
<jar href="lib/commons-lang-2.6.jar" download="lazy" part="commons" size="297085"/>
...
<jar href="lib/trident-6.0.jar" download="lazy" part="core" size="114496"/>
<property name="jnlp.myProperty" value="http://mylocation.mycom.com/jnlp/myapp/MyApp.properties"/>
<property name="log4j.configuration" value="http://mylocation.mycom.com/jnlp/myapp/log4j.xml"/>
</resources>
<application-desc main-class="com.mycom.myapp.MyClass">
</application-desc>
</jnlp>
सूचना है कि मैं वाइल्डकार्ड का इस्तेमाल किया (*
) के लिए:
- टैग jnlp में codebase विशेषता
- टैग jnlp में href विशेषता
- शीर्षक टैग के अंदर
- जार टैग
- दो गुण
मैं उपयुक्त JNLP-INF
फ़ोल्डर के अंदर टेम्पलेट डाल के मूल्य में विशेषता आकार (उचित के साथ सामग्री नाम भी) और हमने उसके बाद जेएआर पर हस्ताक्षर किए। हालांकि, हम निम्न संदेश के साथ एक JNLPSigningException
बार आ रही है:
लांच फ़ाइल पर हस्ताक्षर करने को मान्य करने में विफल। हस्ताक्षरित संस्करण डाउनलोड संस्करण से मेल नहीं खाता है।
किसी को भी मैं क्या याद आ रही है की एक विचार है?
उन लोगों के लिए, ऐसा लगता है कि संपत्ति मूल्य में वाइल्डकार्ड समर्थित नहीं है, यहां तक कि jnlp के साथ भी। उपसर्ग। मुझे यकीन नहीं है कि ओरेकल डेवलपर्स को एप्लिकेशन को गतिशील पैरामीटर को सुरक्षित रूप से पास करने की अनुमति देने की योजना बना रहा है। यह मुझे पागल कर रहा है! https://bugs.openjdk.java.net/browse/JDK-8042664 – JeffG