FOMUnsupportedTextTypeException - Удалить атрибут type="Text/Html" из ленты Atom
У меня проблемы с получением записей из проанализированного Atom Feed. Я получаю эти каналы от веб-службы. Дело в том, что код работает абсолютно нормально на моем локальном сервере, но когда я развертываю его на своем компьютере разработчика, я получаю FOMUnsupportedTextTypeException
Исключение. когда я проверял разницу в сгенерированном фиде Atom, я обнаружил небольшое изменение в фиде xml ниже мой local
кормить
<atom:entry>
<atom:id>e0f7f5e7-a5f3-4a2e-a87d-d8def2b6bc2c</atom:id>
<atom:title">Locations</atom:title>
<atom:author>
<atom:uri>uid=wpsadmin,o=defaultWIMFileBasedRealm</atom:uri>
<atom:name>wpsadmin</atom:name>
</atom:author>
а вот мой dev
коробка сгенерированная xml.
<atom:entry>
<atom:id>e0f7f5e7-a5f3-4a2e-a87d-d8def2b6bc2c</atom:id>
<atom:title type="text/html">Locations</atom:title>
<atom:author>
<atom:uri>uid=wpsadmin,o=defaultWIMFileBasedRealm</atom:uri>
<atom:name>wpsadmin</atom:name>
</atom:author>
единственная разница type="text/html"
в atom:title
Я использую abdera parser для разбора Atom и использую IBM Portal 8 как локальный, так и dev.
Я получаю ошибку в этом коде
Document<Feed> doc = response.getDocument();
Feed feed = (Feed) doc.getRoot();
for (Entry entry : feed.getEntries()) { //exception at this line
исключение FOMUnsupportedTextTypeException
Вот полная деталь исключения
[3/28/13 8:15:22:630 CDT] 0000041f servlet E com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: An exception was thrown by one of the service methods of the servlet [/jsp/html/searchWCM.jsp] in application [APA_SearchWCM]. Exception created : [org.apache.abdera.parser.stax.FOMUnsupportedTextTypeException: Unsupported Text Type: text/html
at org.apache.abdera.parser.stax.FOMBuilder.getTextType(FOMBuilder.java:66)
at org.apache.abdera.parser.stax.FOMFactory.createElement(FOMFactory.java:558)
at org.apache.abdera.parser.stax.FOMBuilder.constructNode(FOMBuilder.java:108)
at org.apache.axiom.om.impl.builder.StAXOMBuilder.createOMElement(StAXOMBuilder.java:430)
at org.apache.axiom.om.impl.builder.StAXOMBuilder.createNextOMElement(StAXOMBuilder.java:298)
at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:223)
at org.apache.abdera.parser.stax.FOMBuilder.next(FOMBuilder.java:93)
at org.apache.axiom.om.impl.llom.OMContainerHelper.buildNext(OMContainerHelper.java:164)
at org.apache.axiom.om.impl.llom.OMNodeHelper.getNextOMSibling(OMNodeHelper.java:40)
at org.apache.axiom.om.impl.llom.OMNodeImpl.getNextOMSibling(OMNodeImpl.java:106)
at org.apache.axiom.om.impl.traverse.OMChildrenIterator.getNextNode(OMChildrenIterator.java:36)
at org.apache.axiom.om.impl.traverse.OMAbstractIterator.hasNext(OMAbstractIterator.java:69)
at org.apache.axiom.om.impl.traverse.OMFilterIterator.hasNext(OMFilterIterator.java:54)
at org.apache.abdera.parser.stax.util.FOMElementIteratorWrapper.hasNext(FOMElementIteratorWrapper.java:37)
at org.apache.abdera.parser.stax.util.FOMList.buffer(FOMList.java:62)
at org.apache.abdera.parser.stax.util.FOMList.get(FOMList.java:71)
at org.apache.abdera.parser.stax.util.FOMList$BufferIterator.next(FOMList.java:197)
at org.apache.abdera.parser.stax.FOMFeed.getEntry(FOMFeed.java:208)
at com.ibm.searchwcm.SearchAndFilter.getSearchResultFromServer(SearchAndFilter.java:279)
at com.ibm.searchwcm.SearchAndFilter.getSearchResult(SearchAndFilter.java:115)
at com.ibm._jsp._searchWCM._jspService(_searchWCM.java:204)
at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:99)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1224)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:122)
at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:205)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:79)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025)
Может кто-нибудь сказать мне, как удалить type="text/html"
атрибут из atom:title
?
1 ответ
Как показывает спецификация Atom, этот фид неверный:
Text constructs MAY have a "type" attribute. When present, the value
MUST be one of "text", "html", or "xhtml". If the "type" attribute
is not provided, Atom Processors MUST behave as though it were
present with a value of "text".
Абдера прав, чтобы отвергнуть это. Судя по вашему вопросу, похоже, что фид генерируется Lotus Web Content Manager; если так, то это ошибка в WCF, которая могла быть исправлена. Если эти две коробки производят разные каналы, возможно, они используют разные версии.
Изменить: Из вашего другого вопроса я вижу, что ваш код получает канал из azeez:10039/wps/mycontenthandler/
, Вам нужно выяснить, почему ваши две среды производят здесь разные каналы, а не пытаются исправлять неверные данные.