2014-09-25 7 views
2

더 쉽게 사용할 수 있도록 파일 시스템에서 직접 여러 보고서 파일을 직접 관리하고 싶습니다. 특히 최신 버전으로 업데이트하거나 숨길 때 유용합니다. 그리고이 투명 문서 라이브러리를 피하십시오.Liferay에서 디스크에서 직접 파일을 읽는 방법은 무엇입니까?

이제이 파일 중 하나를 일반적으로 JasperReports (예 : ByteStream)로 전달하기 위해 liferay에서 직접 읽고 싶습니다. 나는 이것을 할 수있는 어떤 방법이나 파일을 수작업으로 다루는 어떤 것을 발견 할 수 없다.

달성 방법은 무엇입니까? 아니면 내 아이디어로 완전히 혼란 스럽습니까?

+3

Liferay의 파일 처리는 다른 Java 응용 프로그램의 파일 처리와 다르지 않습니다. –

+0

Liferay는 포틀릿 컨테이너이므로 "다른 Java 응용 프로그램"과 매우 다릅니다. java.io 패키지를 직접 사용하지 마십시오. –

답변

0

기본적으로 Liferay는 Spring을 더 많이 또는 덜 직접적으로 사용하기 때문에 Spring 프레임 워크의 능력을 활용할 수 있습니다.

여러 가지 방법으로 할 수있는 파일을 열려면 일종의 "자원 어댑터"를 사용해야합니다. 파일을 넣는 위치와 파일을 가져 오는 방법 (외부에서 제공되거나 Liferay 포틀릿 자체에서 생성되거나 배포 된 리소스로 제공되는 경우)에 따라 다릅니다. 나는 다음과 같은 Spring 클래스를 찾고 추천 할 수

사용합니다 :

org.springframework.core.io.FileSystemResource 

그럼에도 불구하고 당신은 데이터베이스에이 파일을 저장에 대해 생각해야한다, 이것은 결국 훨씬 더 안전하다으로 (거래 안전, 보안,. ..).

+0

file.io를 직접 사용하는 대신 Spring을 사용하는 것이 더 나은 이유는 무엇입니까? – Benjamin

+0

스프링 방식은 엔터프라이즈 응용 프로그램에 알려진 "자원 어댑터"개념과 동일한 기능을 사용합니다. 따라서 비 트랜잭션 입/출력에 액세스 할 때 트랜잭션 처리를 가능하게합니다. file.io를 직접 사용하면 파일 핸들과 파일 읽기/쓰기가 올바르게 관리된다는 보장이 없습니다. 트랜잭션 롤백, 시스템 예외 및 엔터프라이즈 응용 프로그램에 중요한 기타 사항에 대해 생각해보십시오. Liferay는 99 %의 구현을 통해 이러한 API를 올바르게 사용합니다. –

관련 문제