2012-09-12 5 views
1

그래서 jnlp로 실행하기 위해 jar에 서명하는 방법에 대해 다소 혼란 스럽습니다.웹 시작 예외 JNLP

JNLPException[category: Launch File Error : Exception: null : LaunchDesc: 
<jnlp codebase="http:/SomeHost:8080/_test/" href="jnlpcomponent1.jnlp" spec="1.0+"> 
<information> 
    <title>jnlpcomponent1</title> 
<vendor>SUN_MICR</vendor> 
</information> 
<security> 
<all-permissions/> 
    </security> 
<resources> 
<jar href="lib/activation.jar" download="eager"/> 
<jar href="lib/mail.jar" download="eager"/> 
</resources> 
<component-desc/> 
</jnlp> 
] 
at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResourcesHelper(Unknown Source) 
at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResources(Unknown Source) 
at com.sun.javaws.Launcher.prepareResources(Unknown Source) 
at com.sun.javaws.Launcher.prepareAllResources(Unknown Source) 
at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source) 
at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source) 
at com.sun.javaws.Launcher.launch(Unknown Source) 
at com.sun.javaws.Main.launchApp(Unknown Source) 
at com.sun.javaws.Main.continueInSecureThread(Unknown Source) 
at com.sun.javaws.Main$1.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 
: 현재

내가 항아리, 그것은 실행, 다운로드 물건을 확인하기 시작했다, 다음은 마지막에 도달하고 윈도우가 시작할 수 없습니다의 말을 팝업, 그것은 예외를 제공합니다

나는이 그릇이 그릇된/저조한 서명을받는 것과 관련이 있음을 확신한다. 나는 여기서 무슨 일이 일어나고 있는지를 이해하는데 도움을 줄 수있다.

고마워요.

+0

항아리에 어떻게 서명하고 있습니까? 명령과 결과 출력은 무엇입니까? –

+1

그게 전부입니다. 나는 서명하지 않았습니다. 이것은 netbeans에서 JNLP를 정상적으로 정리 + 빌드 한 것입니다. jnlp에 서명하는 적절한 방법은 무엇입니까? –

+0

jarsigner를 사용하십시오. 여기를보십시오 : http://java.sun.com/developer/Books/javaprogramming/JAR/sign/signing.html 원하는 경우 키 스토어가 필요합니다. –

답변

1

나는 서명되는이 단지 함께 할 수있는 뭔가가 꽤 확신 잘못/제대로

정확히 happent, 당신의 항아리 중 하나가 (제대로) 서명되지

무엇 나를 위해 항상 노력하고 있습니다 : 1 병 뚜껑을 풀고 모든 과정을 1 병합합니다. 작동으로 확인되면 원래 배치 설계와 일치하도록 1-2 병을 제거합니다. 그리고 당신은 항아리가 문제가되는지 쉽게 알 수 있습니다.

+1

위에서 인용 한 것 : "그게 전부입니다. 서명하지 않고 넷빈즈의 JNLP를 정상적으로 만들었습니다 .JNLP에 서명하는 적절한 방법은 무엇입니까?" –

+0

@Damien. Bell http://stackoverflow.com/questions/430755/jar-resources-in-jnlp-are-not-signed-by-the-same-certificate –

0

ANT를 사용하여 JAR 파일에 서명 할 수 있습니다. 이렇게하면 IDE 내에서 파일에 서명 할 수 있으며 응용 프로그램을 배포 할 때 더 빠른 작업 흐름을 만들 수 있습니다. 모든 변경 사항에는 신청서에 다시 서명해야합니다. 이 스크립트를 실행하기 전에

<project name="YourProject" default="dist" basedir="jarsigning"> 

    <target name="signMainJar"> 
    <signjar jar="../dist/YourApp.jar" destDir="signed" alias="WhateverYouSetIt2" 
       keystore="fileNameOfCerticate" storepass="passw03d" lazy="true" /> 
    <echo message="The file was signed." /> 
    </target> 
    <!-- Use this if you are using any libraries. These also need to be signed. --> 
    <target name="signLibs"> 
    <signjar destDir="signed" alias="WhateverYouSetIt2" 
       keystore="fileNameOfCerticate" storepass="passw03d" force="true"> 
     <path> 
      <fileset dir="lib" includes="*.jar" /> 
     </path> 
    </signjar> 
    <echo message="The library files were signed." /> 
    </target> 

</project> 

먼저 jarsigning 디렉토리를 작성하고 서명에 사용되는 (키) 인증서를 배치해야합니다. 그 폴더 안에는 "서명 된"폴더가 생기고 이것은 서명 된 코드가 스크립트에 의해 배치되는 곳입니다. Verisign 또는 GoDaddy와 같은 허가 기관에서 인증서를 구입하지 않은 경우 keystore tool을 사용하여 자체 서명 된 인증서를 만드십시오.

관련 문제