2012-12-07 6 views
0

아래의 문제를 도와주세요.런타임 중에 web.server.host 속성을 변경해야합니다.

나는 하나의 liferay 인스턴스를 가지고 있으며 단일 인스턴스가 있습니다. 이 단일 사이트는 여러 클라이언트에 서비스를 제공하고 그들의 전용 도메인 이름을 사용하여 사이트에 액세스

xxx.mysite.com -> 클라이언트 XXX yyy.mysite.com에 대한 도메인 이름 - 클라이언트 YYY에 대한> 도메인 이름

이러한 도메인 이름은 liferay 인스턴스의 infront에있는 apache 웹 서버에서 구성됩니다. portal-ext.properties web.server.host의 속성을 사용하여 liferay에서 웹 서버 정보를 구성했습니다. Liferay는이 속성을 사용하여 페이지의 모든 링크를 생성합니다 (이 속성을 언급하지 않으면 url을 생성하기 위해 servername을 사용함). 그러나 이것을 사용하면 한 번에 하나의 사이트 만 정의 할 수 있습니다. 위의 기능을 수행 할 수 없습니다. 내가하는 Liferay 코드에 가서 PortalImpl.java에 그것이 poratal-ext.properties에 정의 된 web.server.host 속성을 사용하고 URL을 구성 위의 방법에서 코드

public String getPortalURL(
    String serverName, int serverPort, boolean secure) { 

    StringBundler sb = new StringBundler(); 

    if (secure || Http.HTTPS.equals(PropsValues.WEB_SERVER_PROTOCOL)) { 
     sb.append(Http.HTTPS_WITH_SLASH); 
    } 
    else { 
     sb.append(Http.HTTP_WITH_SLASH); 
    } 

    if (Validator.isNull(PropsValues.WEB_SERVER_HOST)) { 
     sb.append(serverName); 
    } 
    else { 
     sb.append(PropsValues.WEB_SERVER_HOST); 
    } 

    if (!secure) { 
     if (PropsValues.WEB_SERVER_HTTP_PORT == -1) { 
      if ((serverPort != Http.HTTP_PORT) && 
       (serverPort != Http.HTTPS_PORT)) { 

       sb.append(StringPool.COLON); 
       sb.append(serverPort); 
      } 
     } 
     else { 
      if (PropsValues.WEB_SERVER_HTTP_PORT != Http.HTTP_PORT) { 
       sb.append(StringPool.COLON); 
       sb.append(PropsValues.WEB_SERVER_HTTP_PORT); 
      } 
     } 
    } 

    if (secure) { 
     if (PropsValues.WEB_SERVER_HTTPS_PORT == -1) { 
      if ((serverPort != Http.HTTP_PORT) && 
       (serverPort != Http.HTTPS_PORT)) { 

       sb.append(StringPool.COLON); 
       sb.append(serverPort); 
      } 
     } 
     else { 
      if (PropsValues.WEB_SERVER_HTTPS_PORT != Http.HTTPS_PORT) { 
       sb.append(StringPool.COLON); 
       sb.append(PropsValues.WEB_SERVER_HTTPS_PORT); 
      } 
     } 
    } 

    return sb.toString(); 
} 

을 다음있다. 이제 런타임 동안 웹 서버 호스트를 결정하기 위해이 메서드를 덮어 써야합니다.

내 질문에. PoralImpl.java에서이 함수를 덮어 쓰는 방법은 무엇입니까? 이를 위해 확장 프로그램을 사용해야합니까? 이 기능을 수행하기위한 다른 방법 (개선 방법)이 있습니까?

내가하는 Liferay 6.1.0를 사용하고 있습니다 GA-1/바람둥이 번들

답변

관련 문제