我正在使用Hybris版本5.4.0,特别是在导出我的数据的Job上。我希望导出媒体的完整外部路径(即URL)而不是相对路径
Ex:/medias/sys_master/h76/hd6/8865465963102.jpg - > http://myserver:myport/medias/sys_master/h76/hd6/8865465963102.jpg
我已经在Hybris Wiki中看到了在语言环境中使用静态声明的方法,但我想以编程方式执行此操作,因为我的应用程序可以在各种服务器和环境中运行。
我已经尝试过在Java中获取服务器地址的常用方法(例如使用INet),但它没有用。
最后,我已经看到在HMC中,我想要的确切信息显示在最后:
Copyright (c) 2000-2013 hybris AG - hybris
Version: null
5.4.0.0
Last compile: 20180410 1543
Release date: 20141113 1921
Server: localhost:9101
Locale: English (United Kingdom) - en_GB
Timezone: Central European Time - Europe/Paris
但是它在defaultContent_jsp.java中捕获了一个servlet请求(然后是out.print(request.getServerName()+":"+request.getServerPort());
),我有办法将这些信息传播给我的工作吗?
答案 0 :(得分:1)
使用您各自的值
更改mycmssite
和mysite
media.mycmssite.http=https\://www.mysite.com
media.mycmssite.https=https\://www.mysite.com
@Resource(name = "cmsSiteService")
private CMSSiteService cmsSiteService;
@Resource(name = "siteBaseUrlResolutionService")
private SiteBaseUrlResolutionService siteBaseUrlResolutionService;
MediaModel media = ...
final CMSSiteModel currentSite = cmsSiteService.getCurrentSite();
final String mediaUrlForSite = siteBaseUrlResolutionService.getMediaUrlForSite(currentSite, true, "");
String downloadURL = mediaUrlForSite + media .getURL()