2013-05-15 3 views
1

Liferay 포털을 개발 중이며 포털의 관리자 측과 클라이언트 측을 처리하는 포틀릿이 하나 있습니다. 것은 클라이언트가 관리자 페이지 (포틀릿 포함)를 볼 수 없다는 것입니다. 또한 포털에 대한 사용자 지정 데이터베이스를 만들었습니다 (필자는 Service Builder를 사용하여 Liferay 데이터베이스에 자체 테이블을 포함 시켰습니다). 이제 동일한 데이터베이스를 사용하여 클라이언트 포틀릿을 사용하여 정보를 가져올 수 있습니다.동일한 데이터베이스가있는 두 개의 포틀릿

아이디어가 있으십니까?

Eclipse 용 Liferay 6.1 및 Liferay SDK 플러그인을 사용 중입니다.

답변

2

Web-Inf/lib에서 [portlet name] -service.jar을 복사하여 다른 포틀릿의 lib 폴더에 붙여 넣을 수 있습니다. maven을 사용하여 이것을 수행하고이 항아리를 의존성으로 추가 할 수 있다면 더욱 좋습니다. 이 방법으로 서비스가 제공하는 Util 클래스에 다른 어떤 포틀릿도 접근 할 수 있습니다.

+0

감사합니다. !!! 당신은 내 하루를 절약했습니다 :) – JohnRambo

+0

내가 도와줬으면 좋겠다. – yannicuLar

+1

Liferay의 Plugin SDK를 사용하고 있다면, liferay-plugin-package.properties에'required-deployment-contexts'를 설정하면 자동으로 컴파일 시간에 가장 최신이며 플러그인이 서비스를 사용함에 따라 배포하는지 확인하십시오. –

0

플러그인 프로젝트의 모든 포틀릿은 하나의 war 파일에서 끝나기 때문에 해당 플러그인이 만든 서비스 작성 서비스를 공유합니다. 런타임 컨텍스트). 따라서 두 개의 포틀릿을 동일한 플러그인에 넣을 수 있으며 둘 다 해당 플러그인의 서비스 작성기 서비스/테이블에 액세스 할 수 있습니다. 나는 이것이 당신이 일반적으로 사용하는 접근법이라고 생각할 것입니다. 언급하신 권한 및 공개 여부는이 조직의 영향을받지 않습니다.

이렇게하면 배포가 간단 해집니다. 플러그인의 전쟁 만 배포하면됩니다.

포틀릿이 별도의 플러그인에 있어야하는 이유가 있다면, yannicuLar의 접근 방식은 한 가지 방법입니다.

0

동일한 테이블/엔티티를 공유하는 두 개의 포틀릿이있는 경우 service.jar을 tomcat-7.0.27 \ lib \ ext에 복사 할 수 있습니다.이 두 포틀릿은 런타임시이 .jar에 액세스 할 수있는 일반적인 위치입니다.

관련 문제