2013-03-25 4 views
-1

У меня возникли проблемы с получением записей из обработанной Atom-фиды. Я получаю эти каналы из веб-службы. Thing Code работает абсолютно нормально на моем локальном сервере, но когда я развертываю его в своем dev-блоке, я получаю FOMUnsupportedTextTypeException Исключение. Когда я проверяю разницу в генерации Atom, я обнаружил небольшое изменение в корневом XML. ниже мой local кормFOMUnsupportedTextTypeException - удалить атрибут type = "Text/Html" из фида Atom

<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

Я использую Абдер анализатор для анализа атома и с помощью IBM Portal 8 в локальном и разработчике.

Я получаю ошибку в этом коде

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?

+0

В вашем вопросе есть только ссылки на 'FOMUnsupportedTextHtmlType' в Интернете. Не могли бы вы включить полное имя исключения? – Joe

+0

Эй, Джо, я обновил свой вопрос. Его 'FOMUnsupportedTextTypeException' –

ответ

1

Как the Atom spec shows, что подача неправилен:

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, которая может быть исправлена. Если эти две коробки производят разные каналы, возможно, они используют разные версии.

Редактировать: От вашего other question Я вижу, что ваш код извлекает фид из azeez:10039/wps/mycontenthandler/. Вам нужно выяснить, почему ваши две среды производят разные каналы здесь, а не пытаются исправить недопустимые данные.

+0

Спасибо Джо, если в любом случае я смогу удалить этот атрибут через код. –

Смежные вопросы