gpt4 book ai didi

java - Websphere Portal Server 虚拟门户 IBM Portal API

转载 作者:行者123 更新时间:2023-11-30 02:22:18 24 4
gpt4 key购买 nike

我正在使用 IBM Portal API 来开发 Websphere Portal Server 中的一些页面,但我希望在嵌套在我的主门户中的虚拟门户的上下文中工作。我已经阅读了 IBM 的文档,但我不明白它是如何工作的,所以我决定向你们请教。你们中有人已经这样做了吗?这就是我尝试从虚拟门户获取 ContentNode 的方式:

private void createPortalContent(HttpServletRequest request, HttpServletResponse response) throws InterruptedException, ModelException{
Context ctx = null;
try {
ctx = new InitialContext();

portletModelHome = (PortletModelHome) ctx.lookup(PortletModelHome.JNDI_NAME);
if(portletModelHome == null){
Thread.sleep(5000);
portletModelHome = (PortletModelHome) ctx.lookup(PortletModelHome.JNDI_NAME);
}

contentModelHome = (ContentModelHome) ctx.lookup(ContentModelHome.JNDI_NAME);
if(contentModelHome == null){
Thread.sleep(5000);
contentModelHome = (ContentModelHome) ctx.lookup(ContentModelHome.JNDI_NAME);
}

contentModelControllerHome = (ContentModelControllerHome) ctx.lookup(ContentModelControllerHome.JNDI_NAME);
if(contentModelControllerHome == null){
Thread.sleep(5000);
contentModelControllerHome = (ContentModelControllerHome) ctx.lookup(ContentModelControllerHome.JNDI_NAME);
}

contentMappingInfoHome = (ContentMappingInfoHome) ctx.lookup(ContentMappingInfoHome.JNDI_NAME);
if(contentMappingInfoHome == null){
Thread.sleep(5000);
contentMappingInfoHome = (ContentMappingInfoHome) ctx.lookup(ContentMappingInfoHome.JNDI_NAME);
}

virtualPortalList = (VirtualPortalListHome) ctx.lookup(VirtualPortalListHome.VIRTUAL_PORTAL_LIST_JNDI_NAME);
} catch (NamingException e) {
e.printStackTrace();
}

ContentModelController contentModelController = getController(request, response);
//LOGGER.info("### CONTENT MODEL CONTROLLER: " + contentModelController.getLocator() + " " + contentModelController.getRoot().toString());
ContentNode contentNode = (ContentNode) contentModelController.getLocator().findByUniqueName("ro.ram.comunicate");
//LOGGER.info("### CONTENT NODE: " + contentNode);
// LOGGER.info("#### VIRTUAL PORTAL LIST: " + virtualPortalList);

//VirtualPortal virtualPortal = virtualPortalList.getVirtualPortalListProvider().getVirtualPortalList().getLocator().findByUniqueName("");
// LOGGER.info("### VIRTUAL PORTAL: " + virtualPortal.getTitle(Locale.ENGLISH));
//Iterator<VirtualPortal> it=virtualPortalList.getVirtualPortalListProvider().getVirtualPortalList().iterator();
// while(it.hasNext()){
// LOGGER.info("### VIRTUAL PORTAL LIST ITERATOR: " + it.next().getDescription(Locale.ENGLISH) + " " + " " + it.next().getTitle(Locale.ENGLISH));
// it.next();
//}
}

谢谢,

最佳答案

因此,寻找唯一名称是一个坏主意,在门户范围之外工作时,您必须查找页面的 objectid。此评论来自信息中心虚拟门户的概念将某些模型的范围限定为用户操作的虚拟门户。目前,此范围概念适用于内容模型、导航模型和导航选择模型。这些模型将其资源限定为虚拟门户。用户操作的门户。” 我认为您最好将此代码移动到 portlet 的资源请求中,然后通过它进行更新,以便确定其范围。如果您想继续沿着这条路径走下去,请在使用标识包将 objectid 的字符串表示形式转换为实际对象后,使代码不查找 uniquename 而是查找实际对象 id,然后使用该对象上的定位器

关于java - Websphere Portal Server 虚拟门户 IBM Portal API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46466071/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com