아래의 문제를 도와주세요.런타임 중에 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/바람둥이 번들