우리는이 특정 라이브러리의 작성자이며 개발 중에는 기본 클래스 경로에서 쉽게 가져올 수 있습니다. 이것이 가능한가?
Facelets 리소스의 경우 webapp 자체에서 사용자 정의 ResourceResolver
으로 가능합니다.
public class FaceletsResourceResolver extends ResourceResolver {
private ResourceResolver parent;
private String basePath;
public FaceletsResourceResolver(ResourceResolver parent) {
this.parent = parent;
this.basePath = "META-INF/resources"; // TODO: Make configureable?
}
@Override
public URL resolveUrl(String path) {
URL url = parent.resolveUrl(path); // Resolves from WAR which would also do META-INF/resources of JARs in WAR.
if (url == null) {
url = getClass().getResource("/" + basePath + path); // Resolves from JARs in WAR when base path is not META-INF/resources.
}
if (url == null) {
url = Thread.currentThread().getContextClassLoader().getResource(basePath + path); // Resolves also from anywhere else in classpath.
}
return url;
}
}
것은, 그것을 실행에 도착 웹 애플리케이션의이 web.xml
에서 다음과 같이 구성하려면 다음 JSF 주석 스캐너로 스캔 할 필요가 등 관리 콩 같은 주석 JSF 아티팩트에 대한
<context-param>
<param-name>javax.faces.FACELETS_RESOURCE_RESOLVER</param-name>
<param-value>com.example.FaceletsResourceResolver</param-value>
</context-param>
이가 불가능합니다. JAR은 실제로 /WEB-INF/lib
에 있습니다. 또한 How to reference JSF managed beans which are provided in a JAR file?
서버 공용 라이브러리 폴더에서 JSF 라이브러리를 설정하려고 시도 했습니까? –
어떤 서블릿 컨테이너를 사용하고 있습니까? 그들 모두는 모든 webapp에 걸쳐있는 lib 폴더를 가지고 있습니다. Tomcat에서'$ CATALINA_BASE/lib /'에 추가 할 것입니다. – Lucas
Tomcat을 사용하고있는 것처럼 들립니다. 그렇다면 $ CATALINA_BASE/lib 폴더에 .jar 파일을 설치할 수 있습니다. 앱 서버 (예 : JBoss 또는 WebSphere)를 사용하는 경우 더 많은 옵션이 있습니다. – paulsm4