【问题标题】:[DM_API_E_BADATTRNAME]error: "Bad attribute name 'str_en' for document/object."[DM_API_E_BADATTRNAME] 错误:“文档/对象的属性名称 'str_en' 错误。”
【发布时间】:2013-07-08 07:52:34
【问题描述】:

我在我的应用程序中收到以下错误:

错误说明:准备搜索结果失败。

错误消息: [DM_API_E_BADATTRNAME]错误:“文档/对象的属性名 'str_en' 错误。”

技术跟踪细节:

DfTypedObjectException:: THREAD: http-9082-Processor19; MSG: [DM_API_E_BADATTRNAME]error:  
"Bad attribute name 'str_en' for document/object."; ERRORCODE: 100; NEXT: null
    at com.documentum.fc.client.DfTypedObjectException.newBadAttrNameException(DfTypedObjectException.java:39)
    at com.documentum.fc.client.DfType.getTypeAttr(DfType.java:282)
    at com.documentum.fc.client.DfType.getTypeAttrDataType(DfType.java:131) 
    at com.documentum.fc.client.DfType___PROXY.getTypeAttrDataType(DfType___PROXY.java)
    at se.project.osi.util.dfc.OsiType.getTypeAttrDataType(OsiType.java:630)
    at org.apache.jsp.portal.administration.equipment.resultset_jsp._jspService(resultset_jsp.java:342)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
    at se.filter.LoginFilter.doFilter(LoginFilter.java:55)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
    at se.filter.EncodingFilter.doFilter(EncodingFilter.java:33)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
    at java.lang.Thread.run(Thread.java:595)

该错误仅在我最近将 dfc 从 5.3 (sp6) 升级到版本 6.7 (sp1) 时开始。我在本地运行一切。我的 5.3 (sp6) 版本仍然可以正常工作,但我想知道即使它们在同一个 docbase、同一个应用程序(dfc 更改除外)和同一个服务器上运行,什么会导致错误。

这是 result.jsp 的代码 sn-p 应该显示搜索:

<%
java.util.Collection col = null;
se.project.osi.util.dfc.OsiDQL q = new se.project.osi.util.dfc.OsiDQL(org.apache.commons.logging.LogFactory.getLog(this.getClass()));
q.setDQL("select str_en from osi_localized where str_category = 'Title'");

col = q.toCollectionString();
java.util.Iterator it = col.iterator();
while(it.hasNext()){
  out.println((String) it.next()+ "<br>");
}
%>

还有search.jsp:

    <%

try {
  queryBean.parse(request, "");
  queryBean.doAction(request, "");

  // Get the Query Mgr Model
  OsiQueryMgrModel model = (OsiQueryMgrModel) session.getAttribute(IProjectType.MODEL_SEARCH_CONTENT);
  String onSubmit = "";
  if (model == null) {
    // Create new Query Mgr Model
    model = new OsiQueryMgrModel();
  }

  if(request.getParameter("osi_localized.str_en") != null)
    onSubmit = "onLoad=\"parent.resultview.location.href = '" + 
        request.getContextPath() + "/portal/administration/material/resultset.jsp?run=T';\"";

  // Assign the updated QueryMgr
  model.setQueryMgr(queryBean.getQueryMgr());
  session.setAttribute(IProjectType.MODEL_SEARCH_CONTENT, model);
%>

提前谢谢你,

埃德

【问题讨论】:

  • 文档库/内容服务器是什么版本?另外,str_en 听起来可能与本地化和语言有关,您在 DFC 安装过程中是否选择了任何语言?
  • 嗨。文档库和内容服务器上的版本均为 6.7 sp1。我认为是的,是的。语言选择是什么意思?抱歉回复晚了。
  • 我看到你也在 emc.com 上发帖但没有成功。我假设您已经使用 DFC 编写了自定义应用程序?如果是这样,你能分享导致这个错误的代码吗?
  • 好的,我已经添加了应该显示的内容的 sn-p。是的,这是一个自定义应用程序。
  • 我已经研究这个问题很长时间了,到目前为止发现我正在使用一些不推荐使用的方法,例如:import com.documentum.fc.client.qb.IDfAttrLine;也许这就是它不起作用的原因?如果是这样,我应该用什么来代替上面的?谢谢你。 (粘贴自 EMC 论坛)

标签: java database documentum dfc


【解决方案1】:

看这里:https://community.emc.com/message/90845#90845

从它的声音来看,com.documentum.fc.client.qb 命名空间现在已在许多版本中被弃用,取而代之的是com.documentum.fc.client.search,所以这肯定是问题所在。似乎它在 5.3 甚至更早的版本中已被弃用,因此升级到 6.x 可能会对这些类产生意想不到的结果,如果它们甚至存在的话。

【讨论】:

  • 是的,我也浏览过 EMC 论坛。我对以下命名空间有疑问:com.documentum.fc.client.qb.IDfAttrLinecom.documentum.fc.client.qb.IDfQueryMgrcom.documentum.fc.client.qb.IDfQueryResultItemcom.documentum.fc.client.qb.IDfQueryLocationcom.documentum.fc.client.qb.IDfQueryFullTextcom.documentum.fc.client.qb.IDfQueryResultListener 我真的不知道上述命名空间的等效命名空间,我不确定在哪里可以找到它们任何一个。围绕这个主题的文档很少。谢谢你。干杯。
  • 您可能应该只做import com.documentum.fc.client.search.*; 并且列出的所有类似乎都映射到该命名空间中的一个新类。例如,IDfQueryMgr 映射到 IDfQueryManagerIDfQueryFullText 似乎映射到 IDfFullTextExpression。我不能 100% 确定,因为我无法访问早于 6.5 的 dfc.jar,但映射似乎有点明显。
  • 提示:在eclipse中打开dfc.jar或者直接解压,你会看到类列表。这可以帮助您找出映射。
  • 感谢您的帮助。这些不推荐使用的接口确实存在于 dfc.jar 但不存在于 API 中。这怎么可能?
  • 也许它们已被弃用到无法使用的地步?我也不确定我是否理解。它们在我的 6.5 dfc.jar 中仍然可用,但我没有尝试使用它们运行任何代码,但它确实编译了。
【解决方案2】:

当我将属性名称放在不区分大小写的“dqlCount”或“dql_count”中时,我遇到了同样的问题。之后,我从属性“dqlcount”中删除了不区分大小写和字母数字符号,然后它对我来说工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-23
    • 1970-01-01
    • 2017-12-07
    • 2016-11-02
    • 2021-06-05
    相关资源
    最近更新 更多