2016-11-22 1 views
1

일부 포틀릿이있는 liferay 포털이 있습니다. 포틀릿은 예를 들어 몇 가지 조치를 취합니다.외부 애플리케이션에서 포틀릿 동작 호출

@RenderMapping(params = "action=displayHome") 
public String displayHome(final RenderRequest request, final RenderResponse response, final ModelMap map) { 

    return "home"; 
} 

내부에서 liferay를 사용하면 모든 작업이 정상적으로 작동합니다. 그러나! 나는이 작업을 호출해야하는 두 번째 응용 프로그램 (정상적인 봄 MVC 최대 절전 모드 등)이 있습니다. Srsly 나는 이것을하는 방법을 모른다. 누구든지 나를 도울 수 있습니까?

<route> 
    <pattern>/test_pattern</pattern> 
    <implicit-parameter name="action">testAction</implicit-parameter> 

    <implicit-parameter name="p_p_lifecycle">0</implicit-parameter> 
    <implicit-parameter name="p_p_id">xxx_WAR_xxxportlet_INSTANCE_73iYU2pK0li</implicit-parameter> 
    <implicit-parameter name="p_p_state">normal</implicit-parameter> 
    <implicit-parameter name="p_p_mode">view</implicit-parameter> 
    <implicit-parameter name="p_p_col_id">column-1</implicit-parameter> 
    <implicit-parameter name="p_p_col_count">1</implicit-parameter> 
</route> 

그리고 나는 그것이 작동하지 않는, 문제가 :

나는 경로와 함께 파일을 만들었습니다. 항상 실제 페이지에 저를 보내 -> 액션이 호출되지 않습니다/

답변

1
  • 옵션 1 - 당신이 그것을 사용하고 봄 응용 프로그램에 붙여 넣을 수있는 페이지에서 URL을 복사합니다. 아래쪽 - 많은 것들이 포털에서 변경되어 URL이 변경되어 응용 프로그램이 더 이상 작동하지 않습니다.

  • 옵션 2 - URL 구성 방법을 배우고 Spring 응용 프로그램에서 생성하는 방법을 익히십시오. 단점 - 포틀릿에 대한 Fiendly URL(s)를 생성하고 봄 앱에서 사용 - 포틀릿 URL은

  • 옵션 3 (세부 사항에있는 모든 옵션을 설명하기 위해 여기에 공간이 충분하지) 복잡하고 긴. 단점 - 다른 페이지로 포틀릿을 이동하는 경우) 작동이 중지됩니다

  • 옵션 4 - 혼자 포틀릿을 사용하지 않는 대신 로컬/원격 서비스 + 포틀릿을 사용합니다. 지역 서비스 로직을 넣어 때 로컬 및 원격 서비스 형태로 다른 애플 리케이션 (심지어 모바일 것들)

+0

p_p_auth이 표시되지 않도록 필요하지만 <친화적 인 URL에서 경로를> 문제은't이 XML 파일을 참조하십시오. Maven 설정에 문제가있을 수 있습니까? –

+0

"가 xml 파일을 볼 수 없다"라는 것이 무슨 뜻인지 이해가되지 않습니다. Liferay 버전을 포함하여 자세한 내용을 제공해주십시오. –

+0

나는 이미 문제를 해결했다. 내 잘못! –

0

솔루션을 통해 포틀릿을 통해 전화 : 을 Liferay-portlet.xml의 :

<friendly-url-mapper-class>com.liferay.portal.kernel.portlet.DefaultFriendlyURLMapper</friendly-url-mapper-class> 
    <friendly-url-mapping>xxx_mapping</friendly-url-mapping> 
    <friendly-url-routes>config/xxx-friendly-url-routes.xml</friendly-url-routes> 
    <instanceable>false</instanceable> 

경로에 자원/구성 : instanceable가 false로 설정되어있는 경우

<routes> 
    <route> 
     <pattern>/displayXXXPattern</pattern> 
     <generated-parameter name="action">displayXXX</generated-parameter> 
     <implicit-parameter name="p_p_lifecycle">0</implicit-parameter> 
     <implicit-parameter name="p_p_mode">view</implicit-parameter> 
     <implicit-parameter name="p_p_state">normal</implicit-parameter> 
     <implicit-parameter name="p_p_id"xxx_WAR_dekraaquaportlet</implicit-parameter> 
    </route> 

</routes> 

이 중요 -> 우리는 인스턴스 ID를 통과 할 필요가 없습니다 - p_p_id에서 우리는 올바른 난을 통과하지 못한 경우가 작동하지 않습니다> 다른 경우 인스턴스 ID (추가 정보, liferay는 버그 나 오류를 표시하지 않음). 포틀릿

우리는 해제 할 수 있습니다

<init-param> 
     <name>check-auth-token</name> 
     <value>false</value> 
    </init-param> 

를 다른 경우에 우리는 내가 옵션 3을 다할 것입니다

관련 문제