2012-01-18 4 views
0

내 웹 응용 프로그램은 Google Maps API를 기반으로하며 jar 파일 내에있는 이미지에 액세스하는 데 문제가 있습니다. Google지도 이미지 파일이 jar 파일에있는 표시 자

  • 는 자바 스크립트지도에 마커를 표시 :

    나는 두 가지 일을 할 수 있어야합니다.

  • 마커를 정적지도에 표시하십시오.

두 경우 모두 이미지 파일의 경로를 제공해야합니다. 이 이미지는 웹 응용 프로그램이 서버에 배포되면/WEB-INF/lib 폴더에있는 jar 파일 안에 있습니다.

내가 다음 줄이 작동 것이라고 생각 : iconMarker.image = "! WEB-INF/lib 디렉토리/cimCore.jar/META-INF/자원/IMG /"+ ilMarker.icon;

그러나 클라이언트 브라우저에서 다음과 같은 오류 보여줍니다 : '!' "NetworkError 404 없음 Found-을 http://ip/cimWeb/WEB-INF/lib/cimCore.jar!/META-INF/resources/img/gsearch.png"

나는에 의해 접근 추측 있도록 경로가 OK입니다 캐릭터가 적절한 방법이 아닙니다.

아이디어가 있으십니까?

답변

0

당신은 응답이 바이트를 클래스 로더에서 이미지 바이트를로드 서블릿을 사용하고, 스트리밍해야합니다 : 이미지

  • 전화에 입력 스트림을 얻을

    • 사용 MyServlet.class.getResourceAsStream("/META-INF/resources/img/gsearch.png")
    • response.setContentType("image/png")
    • 입력 스트림에서 모든 바이트를 읽어 응답 출력 스트림을 얻고 출력 스트림
    에 기록

    대부분의 MVC 프레임 워크는 URL 패턴을 클래스 패스 리소스에 매핑하거나 적어도 위 알고리즘의 일부를 구현하는 기능을 지원합니다.

    또는 jar 파일에서 이러한 이미지를 추출하고 외부 액세스 가능 리소스의 webapp 트리에 넣을 수 있습니다.

    사이드 노트 : WEB-INF는 설계 상 외부에서는 접근 할 수 없습니다. 원하는 작업을 수행 할 수 있다면 누구나 jar 파일과 Java 기반 웹 응용 프로그램의 구성을 훔칠 수 있습니다.

  • +0

    지원해 주셔서 감사합니다. 내가 사용하는 프레임 워크 인 MyFaces를 살펴 보겠습니다. 좀 더 일반적인 해결책이 있다고 생각했습니다. –

    +0

    URL의 라이브러리 이름 속성을 사용하여 JSF 2 용 솔루션을 찾았습니다. http : //...webpath../javax.faces.resource/image.png.faces? ln = img 그러나 다음 구조로 jar 파일 내부에 새 라이브러리를 지정해야합니다. jar/META- INF/resources/img –