当我在调度程序中使用PortalUtil.getPortalPort(secure)时,它总是返回-1而不是正确的端口号8080。

boolean secure = "https".equalsIgnoreCase( PropsUtil.get( PropsKeys.WEB_SERVER_PROTOCOL ) );
Company company = CompanyLocalServiceUtil.getCompanies().get(0);
String portalURL = PortalUtil.getPortalURL(company.getVirtualHostname(), PortalUtil.getPortalPort(secure), secure);


如果我从托管bean运行代码,则可以正常工作。

还有其他方法可以从调度程序获取服务器端口吗?

最佳答案

由于您正在执行调度程序中的代码,并且没有对请求对象的引用,因此无法使用PortalUtil获取服务器端口。

您可以尝试这里提到的技巧。 Java EE getting servlet container port

关于java - 由于PortalUtil.getPortalPort(secure)始终返回-1,因此无法在调度程序中获取liferay服务器的url,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18698624/

10-11 02:32