首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法访问WCM库

无法访问WCM库
EN

Stack Overflow用户
提问于 2014-01-31 21:43:48
回答 2查看 1.3K关注 0票数 0

我正在尝试访问一个WCM()库,该库已经在门户应用程序中正常工作。我的要求是从部署在WAS(Webspher application )上的企业应用程序访问相同的库。它在我的本地主机上工作得很好,但是当部署在开发服务器上时,它给了我以下错误-

堆栈跟踪com.ibm.websphere.servlet.error.ServletErrorReport: java.lang.IllegalStateException: WCM存储库未在com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:152) at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:77) at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:908) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.上向WCM_API注册com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502) at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:179) at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:121) at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:259) at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:686)在com.bowstreet.webapp.engine.pageprocessor.JSPPageProcessor.requestJSPPage(JSPPageProcessor.java:321) at com.bowstreet.webapp.engine.pageprocessor.JSPPageProcessor.processPage(JSPPageProcessor.java:207) at com.bowstreet.webapp.engine.actions.PageAction.callAction(PageAction.java:101) at com.bowstreet.webapp.engine.WebAppAccessImpl.processPage(WebAppAccessImpl.java:228)

我正在使用IBM和PortalServer6.1。下面是代码片段-

代码语言:javascript
复制
// retrieve repository
   Repository repository = WCM_API.getRepository();  
   try{      
    // get the workspace for current user
    Workspace workspace = repository.getSystemWorkspace();
    workspace.login();
    // set the library
    workspace.setCurrentDocumentLibrary(workspace.getDocumentLibrary("MyLibrary"));
    // find content by name
     DocumentIdIterator contentIterator = workspace.findByName(DocumentTypes.Content,"MyKey");
      System.out.println("key:: contentIterator="+contentIterator);
     //find all contents
     if (contentIterator.hasNext()){ 
       System.out.println("key:: inside if =");
       Content content=(Content)workspace.getById(contentIterator.nextId(),true);
       System.out.println("getWCMURL:: Content="+content.getName());
       RichTextComponent txtComp= (RichTextComponent)content.getComponentByReference("Text");
       if(txtComp.getRichText()!=null){
        cntmsg = txtComp.getRichText();
       }       
   }   
  }  
  catch(Exception e){
   System.out.println("getWCMURL:: Error:"+e.getMessage());
  }

请帮帮我..。

EN

回答 2

Stack Overflow用户

发布于 2015-01-29 02:18:56

在撰写这篇文章时,IBMWebContentManagementv6.1不再受支持(生命结束于2014年9月),因此您应该已经升级了。IBM一次只支持3个版本(当前+2个以前的版本)。

尽管如此,如果应用程序在Web启动之前启动,则有时会发生此错误。您需要将启动权重设置为大于30。http://www-01.ibm.com/support/docview.wss?uid=swg21656128

如果没有对整个源代码和完整堆栈跟踪的访问,那么在何时触发该代码就有点困难了。另一个错误来源可能是部署代码的服务器。它必须部署到Portal,而不是Application。

票数 0
EN

Stack Overflow用户

发布于 2018-01-02 15:16:34

您的开发服务器上有虚拟门户吗?

如果开发服务器中确实有虚拟门户,则必须获得虚拟门户上下文并以如下所述的方式运行它-

https://gist.github.com/roanbester/0c1dafece0d0fac699e4

我将强调其中的主要区别:

代码语言:javascript
复制
Repository repository = WCM_API.getRepository();
// **get the virtual portal context**
VirtualPortalContext vpContext = repository.generateVPContextFromContextPath("virtualPortalName");

// Custom class, implements IBM interface, our executable code has to go here
FindCategoriesAction findCategoriesAction = new FindCategoriesAction();

// Now, WCM will execute our code kept in 'findCategoriesAction' 
   by calling the run method
repository.executeInVP(vpContext, findCategoriesAction);

我不是这段代码的作者。如果您想返回保存在'findCategoriesAction‘中的代码的输出,就会变得很困难。

这里的示例代码没有显示或实现线程同步。

我个人并不是整个IBM和套件的忠实粉丝。

这是一座古老的建筑。

另外,从8.0开始,WCM有一个REST,您可以使用它访问内容或任何元素,但同样,它并不像听起来那么整洁。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21490600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档