webstart-maven-plugin을 통해 스윙 GUI를 배포하고 JnlpDownloadServlet을 서블릿 컨테이너 (Glassfish 3.0)의 webapp에 배포했습니다. 내 GUI 클래스와 리소스는 내 webapp의 webstart 디렉토리에있는 mygui-4.8.jar 파일에 launch.jnlp 파일과 함께 있습니다.JnlpDownloadServlet을 사용하여 webapp의 webstart 디렉토리에있는 jar 파일 내 리소스에 액세스하는 방법
응용 프로그램은 잘 시작할 수있을 때 웹 브라우저에서의 launch.jnlp의 URL로 접속 :
내 웹 애플리케이션의 코드가 mygui 안에 이미지 리소스에 액세스하려고하지만http://localhost:8080/myserver/webstart/launch.jnlp
-4.8.jar 파일을 검색 할 수 없습니다. ..
내가 아이콘을 얻을 수있는 GUI에서 사용하는 코드는 다음과 같습니다
URL iconURL = getClass() getClassLoader를()의 getResource ("/ 아이콘/Find.png"); 나는 iconURL.toString()가 다음 URL을 반환하는 것을 볼 디버거를 사용
:
항아리 : HTTP : // localhost를! 8080/MyServer를/Webstart를/mygui.jar /icons/Find.png
jar 파일 이름 (mygui-4.8.jar 대신 mygui.jar)에 버전이 없음을 알았습니다.
이것은 jnlp 프로토콜의 버전 처리와 관련이있는 것 같습니다.
jar 파일 내부에서 이러한 리소스를 가져 오기 위해 내 클라이언트 코드를 어떻게 다시 작성해야하는지 알 수 있습니까? 당신의 도움을 주셔서 감사합니다.
JaNeLA (http://pscode.org/janela/)를 사용하여 JNLP 파일 (및 주요 리소스)을 확인하는 것이 좋습니다. –
이 디버깅을 더하면서 나는 mygui-4.8.jar 질문이 jar에 대한 JnlpDownLoadServlet에 한 번만 도달한다는 것을 알았습니다. 분명히 javaws는 클라이언트 측에서이 jar를 캐시하고 JnlpDownloadServlet에 접속하지 않고 jar localy에 대한 모든 요청을 제공합니다. 그러나 javaws 항아리 내의 Find.png 파일에 액세스하는 URL에 대해 항아리 프로토콜을 제대로 처리하지 않는 것으로 보입니다. 이 작품을 만들려면 특별한 트릭이 있습니까? –
관련이있을 수 있습니다 ... [http://rachel.sourceforge.net/tutorial2.html]이 (가) 다시보고합니다. –