White spaces are required between publicId and systemId.

I am making a request (using the REST service) with the following simple line of code in my template;
$user.psoFeedTools.getFeed(“http://<servername>:<port>/Rhythmyx/services/Content/2303”)

I get an exception “Underlying error: White spaces are required between publicId and systemId. See log for stack trace.” (full stack trace below)

I can run the url in browser and I do get returned a valid xml back to the browser.
<?xml version=“1.0” encoding=“UTF-8” standalone=“yes”?>
<Item workflow=“Conservia Workflow” title=“Landing Page” state=“Draft” revision=“1” locale=“en-us” contentType=“cvaLandingPage” contentId=“2303” communityName=“Conservia” checkoutUserName=“anthony”>
<Folders>
<Path>//Sites/microsite</Path>
</Folders>
<Fields>
<Field name=“cvadisplaytitle”><Value>Genworth</Value></Field>

Is there something I should be doing differently to return the xml to my template?

-Anthony

11:54:41,468 ERROR [PSVelocityAssembler] Problem assembling output for item (name=“microsite folder”, id=1-1
-2434) with template: cvaPgRestFeed.
org.xml.sax.SAXParseException: White spaces are required between publicId and systemId.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
at org.apache.xerces.impl.XMLScanner.scanExternalID(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl.scanDoctypeDecl(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:453)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:851)
at com.sun.syndication.io.WireFeedInput.build(WireFeedInput.java:194)
at com.sun.syndication.io.SyndFeedInput.build(SyndFeedInput.java:123)
at com.percussion.pso.jexl.PSOFeedTools.getFeed(PSOFeedTools.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:38

    at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:378)
    at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:270)
    at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:252)
    at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:332)
    at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:336)
    at org.apache.velocity.Template.merge(Template.java:328)
    at org.apache.velocity.Template.merge(Template.java:235)
    at com.percussion.services.assembly.impl.plugin.PSVelocityAssembler.assembleSingle(Unknown Source)
    at com.percussion.services.assembly.impl.plugin.PSAssemblerBase.doAssembleSingle(Unknown Source)
    at com.percussion.services.assembly.impl.plugin.PSVelocityAssembler.doAssembleSingle(Unknown Source)
    at com.percussion.services.assembly.impl.plugin.PSAssemblerBase$_b.o00000(Unknown Source)
    at com.percussion.services.assembly.impl.plugin.PSAssemblerBase.assemble(Unknown Source)
    at com.percussion.services.assembly.impl.PSAssemblyService.o00000(Unknown Source)
    at com.percussion.services.assembly.impl.PSAssemblyService.assemble(Unknown Source)
    at com.percussion.services.assembly.impl.PSAssemblyService.processServletRequest(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvo

tion.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.j
a:149)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationIntercepto
java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.j
a:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy128.processServletRequest(Unknown Source)
at com.percussion.services.assembly.impl.PSAssemblyServlet.service(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.percussion.webdav.PSWebDavRequestFilter.doFilter(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.percussion.servlets.PSSecurityFilter.doFilter(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.percussion.servlets.PSCharacterSetFilter.doFilter(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.
va:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Unknown Source)

Anthony,

What is that URL returning if you hit it in a browser? “http://<servername>:<port>/Rhythmyx/services/Content/2303”

-n

I put part of the response in the original post (see second red block of text). Here is the full doc returned…

<?xml version=“1.0” encoding=“UTF-8” standalone=“yes”?>
<Item workflow=“Conservia Workflow” title=“Landing Page” state=“Draft” revision=“1” locale=“en-us” contentType=“cvaLandingPage” contentId=“2303” communityName=“Conservia” checkoutUserName=“anthony”>
<Folders>
<Path>
//Sites/microsite</Path>
</Folders>
<Fields>
<Field name=“cvadisplaytitle”>
<Value>
Genworth</Value>
</Field>
<Field name=“sys_contentstartdate”>
<DateValue>
2010-11-08 00:00:00</DateValue>
</Field>
<Field name=“soln_segment”>
<Values/>
</Field>
<Field name=“metatitle”>
<Value>
Landing Page</Value>
</Field>
<Field name=“metadescription”>
<Value>
Small Business Guide To Energy Efficiency, Home Guide To Energy Efficiency: Condo Edition, Selling Your Home’s Power Back To The Grid, Tax Guide: Financing an Energy Efficient Home</Value>
</Field>
<Field name=“metakeywords”>
<Value>
Learn About Energy Sources, Analyze Your Energy User, Cut Your Energy Costs, Most Popular Energy Guides, Connect with Conservia on Facebook</Value>
</Field>
<Field name=“webFriendlyFileName”>
<Value>
landing_page</Value>
</Field>
<Field name=“cvabody”>
<XmlValue>
<div class=“rxbodyfield” xmlns:o=“urn:www.microsoft.com/office” xmlns:st1=“urn:www.microsoft.com/smarttags” xmlns:st2=“urn:www.microsoft.com/smarttags2” xmlns:w=“urn:www.microsoft.com/word” xmlns:x=“urn:www.microsoft.com/excel”><p>Since writing our first policy in 1871 as The Life Insurance Company of Virginia, we’ve been committed to helping people effectively protect and achieve the comfort of financial security. Today, even in this challenging environment, Genworth Financial is strategically focused and positioned to provide the stability, confidence and support our policyholders, customers and distributors can rely on now and in the future.</p></div></XmlValue>
</Field>
<Field name=“google_priority”>
<Value>
0.1</Value>
</Field>
<Field name=“sys_communityid”>
<Value>
1007</Value>
</Field>
<Field name=“sys_lang”>
<Value>
en-us</Value>
</Field>
<Field name=“sys_workflowid”>
<Value>
9</Value>
</Field>
<Field name=“sys_hibernateVersion”>
<Value>
10</Value>
</Field>
<Field name=“publisher”>
<Value>
1</Value>
</Field>
<Field name=“WT__mc_id”>
<Value>
CostCutProductLaunch</Value>
</Field>
<Field name=“WT__si_n”>
<Value>
CostCuttingPurchase</Value>
</Field>
<Field name=“WT__si_p”>
<Value>
HomePage</Value>
</Field>
<Field name=“sys_contentcreatedby”>
<Value>
rxserver</Value>
</Field>
<Field name=“sys_contentcreateddate”>
<DateValue>
2011-05-02 13:17:22</DateValue>
</Field>
<Field name=“sys_contentid”>
<Value>
2303</Value>
</Field>
<Field name=“sys_contentlastmodifieddate”>
<DateValue>
2011-05-06 15:02:36</DateValue>
</Field>
<Field name=“sys_contentlastmodifier”>
<Value>
anthony</Value>
</Field>
<Field name=“sys_contenttypeid”>
<Value>
629</Value>
</Field>
</Fields>
<Children/>
<Relationships>
<Copies>
<Copy relId=“8067” revision="-1" href=“http://10.10.10.162:9992/Rhythmyx/services/Content/2424” contentId=“2424”/>
</Copies>
<Slots>
<Slot type=“ActiveAssembly” name=“cvaSlPress”>
<Item template=“cvaSnTitleLinkDate” sortRank=“1” relId=“7742” revision="-1" href=“http://10.10.10.162:9992/Rhythmyx/services/Content/1551” contentId=“1551”/>
</Slot>
</Slots>
</Relationships>
<DepRelationships>
<Copies>
<Copy relId=“7669” revision=“1” href=“http://10.10.10.162:9992/Rhythmyx/services/Content/1555/1” contentId=“1555”/>
</Copies>
<Slots>
<Slot type=“ActiveAssembly” name=“rffNavLandingPage”>
<Item template=“cvaSnTitleLink” sortRank=“0” relId=“7706” revision=“1” href=“http://10.10.10.162:9992/Rhythmyx/services/Content/2302/1” contentId=“2302”/>
</Slot>
</Slots>
</DepRelationships>
</Item>

The URL param on getFeed is expecting the URL to return an RSS XML feed.

If the input is the import item format that will not work.

Thanks. Can someone point me in the right direction? How are others using the REST service? Is there example code?