2013-03-28 4 views
0

Tomcat 서버와 Oracle 10g 데이터베이스에 번들로 제공되는 Liferay 6.1.1-ce-ga2를 사용합니다. 저의 목표는 저널 아티클과 같은 일부 컨텐츠를 삽입하고 Asset Publisher에 표시하는 것입니다 (이미 구조 및 템플릿 사용).Liferay 웹 서비스

오른쪽 입력란 (groupid, structureid, templateid, ...)을 사용하여 JournalArticleServiceSoap.addArticle(...)을 사용했습니다. 내용은 데이터베이스에 "올바르게"삽입되어 관리자 내용 패널에서 웹 내용으로 볼 수 있습니다. 내용의 상태도 "Approved"입니다. 이것은 설정하면됩니다 : 그러나

serviceContext.setWorkflowAction(WorkflowConstants.ACTION_PUBLISH) 

, 나는 자산 발행인의 다른 내용으로 표시 삽입 된 내용을 볼 수 없습니다, 나는 에디션 다시 열어도 아무 것도 변경하지 않고 (게시 버튼을 클릭 할 때까지). 그런 다음 내용이 예상대로 게시됩니다. 문제는 내용의 수입니다. 그것은 약 600입니다. 그래서 나는이 행동을 할 수 없습니다.

나는 무엇이 문제인지 파악하는 방법을 모르겠다. 즉, 웹 서비스에 삽입 된 웹 컨텐츠를 Asset Publisher에 자동으로 표시하려면 어떻게해야합니까?

또는 "Publish"이 정확히 수행하므로 프로그래밍 방식으로 SOAP 서비스 (또는 삽입 후 SQL)를 사용하여 재생산 해 볼 수 있습니까?

도움을 주셔서 감사합니다. 당신이하는 Liferay에서 액세스하는 데이터베이스를 기록하고 문서를 수동으로 실시를 저장 한 후 변경 될 것입니다 무엇을보고 시도 할 수 있습니다 Problem to display JournalArticle inserted by SOAP web service

답변

0

:

은 또한을 Liferay '포럼에서 같은 질문을 게시했습니다. 여기서 hibernate의 로깅 수준을 info 또는 debug로 설정하십시오.

+0

최대 절전 모드를 사용하여 Liferay에서 액세스하는 데이터베이스는 어디에서 로그 할 수 있습니까? Thx – jacques

+0

좋아요, 나는 portal-ext.properties'hibernate.show_sql = true log4j.logger.org.hibernate = info'에 다음을 추가하여 데이터베이스를 로그하는 방법을 찾았습니다. addArticle (...) 메소드와 Publish 액션은 동일한 SQL 액션 (삽입 및 업데이트)을 사용하는 것처럼 보입니다. 100 줄의 코드를 이해하려고 노력 중이며 해결책을 찾으면 공유 할 것입니다. – jacques

0

serviceContext를 다음과 같이 설정 하시겠습니까?

ServiceContext serviceContext = new ServiceContext(); 
serviceContext.setAddGuestPermissions(true); 
serviceContext.setAddGroupPermissions(true); 
serviceContext.setScopeGroupId(groupId); 
serviceContext.setWorkflowAction(WorkflowConstants.ACTION_PUBLISH); 
+0

예 Mariol, 제 설정은 비슷하지만 여전히 작동하지 않습니다. 정보에 대해서는'journalArticleServiceSoap.addArticle' 메소드에서 structureId를 null로 대체했습니다. 6.1.1 버전의 liferay에서이 값을 설정하면 java.rmi.RemoteException이 발생하기 때문입니다. – jacques

+0

물론 데이터베이스에서 나는 올바른 값으로 structureId를 대체합니다. 또한 (DB에서) 삽입 된 행과 다른 행을 비교할 때 어떤 차이점도 볼 수 없습니다. – jacques

+0

WorkflowConstants.ACTION_PUBLISH 대신 WorkflowConstants.STATUS_APPROVED를 사용하여 코드를 작성했습니다. – Mariol

0

당신은이 같이 ServiceContext는 설정해야합니다

ServiceContext serviceContext = new ServiceContext(); 
    //serviceContext.setAddGuestPermissions(true); 
    //serviceContext.setAddGroupPermissions(true); 
    serviceContext.setScopeGroupId(groupId); 
    serviceContext.setWorkflowAction(1); 
    serviceContext.setIndexingEnabled(true); 

serviceContext.setIndexingEnabled (TRUE); 매우 중요합니다.

다음 코드는 반드시 입력해야하는 것은 아닙니다.

serviceContext.setAddGuestPermissions(true); 

serviceContext.setAddGroupPermissions(true); 
관련 문제