2012-05-22 2 views
2

GlassFish 3.1.1에서 실행되는 JSF 2.0 응용 프로그램을 가지고 있으며 내 WAR가 만들어 질 때 내 응용 프로그램 루트와 물리적으로 떨어져있는 정적 웹 페이지를 제공해야합니다 파일이 배포되었습니다. 내가 Glassfish를 사용하여 JSF 응용 프로그램에서 정적 웹 페이지를 제공하는 방법

<property name="alternatedocroot_1" value="from=/myimages/* dir=/images"/> 

내가 감히 것 sun-web.xml에 (추가와 같은 태그를 사용 DOCROOT 대체를 정의하는 다양한 참조를 (같은 this onethis one) 발견했습니다는 글래스 피쉬 3.1 글래스 피쉬-web.xml의 의미 .1). 그러나 나는 그것을 작동시키지 못합니다.

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd"> 
<glassfish-web-app error-url=""> 
    <class-loader delegate="true"/> 
    <jsp-config> 
    <property name="keepgenerated" value="true"> 
     <description>Keep a copy of the generated servlet class' java code.</description> 
    </property> 
    </jsp-config> 
    <property name="alternatedocroot_1" value="from=/myimages/* dir=/images"/> 
</glassfish-web-app> 
내 응용 프로그램 정의의 고기 보인다

이 훨씬 더 될 : 내 경우, 나는 문제가 글래스 피쉬-web.xml을 단순히 어떤 의미를 가지고 대체 docroot를위한 충분한 컨텍스트를 정의되지 않는다는 생각 glassfish-web.xml보다 web.xml. 대체 docroot를 참조하기 위해 그 대신에 무언가를 넣어야합니까?

답변

5

이 정확한 구성은 웹 서버의 JVM이 실행되는 곳과 동일한 디스크의 절대 루트와 관련하여 /images/myimages 폴더가 필요합니다. 그 폴더에있는 foo.png 파일은 http://localhost:8080/contextname/myimages/foo.png에 의해 사용 가능합니다.

이 설정과 관련된 일반적인 혼란은 from 특성이 URL의 컨텍스트 경로로만 해석되고 dir 위치의 실제 하위 폴더로 해석되지 않는다는 것입니다. 그러나 이것은 사실이 아닙니다.

Windows 환경에서 Glassfish를 실행하는 경우 에 디스크 문자를 지정해야합니다 (예 : dir=C:/images).

+0

실제로 Windows에서는'dir ='값 앞에'C : '를 붙이지 않는 한 도메인 루트에서 검색하는 것으로 보입니다. 그러나 유효한 경로를 제공하더라도 다음과 같은 오류가 발생합니다. '심각 : 앱로드 중 예외 : java.lang.IllegalStateException : ContainerBase.addChild : start : org.apache.catalina.LifecycleException : java.lang.IllegalArgumentException : javax.servlet.ServletException : com.sun.enterprise.container.common.spi.util.InjectionException : 클래스 org.jboss.weld.servlet.WeldListener'의 관리 객체를 만드는 중 오류가 발생했습니다. 그래서 내 구성 질문에 대한 답변을 추측합니다. –

+0

오른쪽. Windows는 이상한 짐승입니다. 답변을 업데이트했습니다. 새로운 문제에 대해서는 대체 docroot를 제거 할 때이 예외가 사라지나요? – BalusC

+0

대체 docroot를 제거했을 때 예외가 사라지지 않았으므로 다시 넣었습니다. Glassfish가 다시 시작되었습니다. 이제는 제대로 작동합니다. 구성에 대한 영어 설명은 다음과 같습니다. alternatedocroot 속성의'value' 속성에서'from' 패턴과 일치하는 URI의 경우 실제 파일 경로는'dir' 경로의 값과 같습니다. 문맥/앱 이름을 따르는 URI 부분. –

관련 문제