Hi Mandy
Thanks for experimenting,
"schemaLocations" points to resources which are assumed to be XML
schemas and these schemas are read as XML. I've actually created a JIRA
few days ago to support inlining JSON schemas but for now
schemaLocations is assumed to point to XML schemas only.
Use an "externalLinks" property, see
https://git-wip-us.apache.org/repos/asf?p=cxf.git;a=blob;f=rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/WadlGeneratorJsonTest.java;h=cf368062059d21624cab45bd7614c6789c02f41e;hb=HEAD
Another option is to use WADL XML as usual but set a
'linkAnyMediaTypeToXmlSchema' property, so you'd see representations of
type JSON linked to XML schema elements - which is semantically not
correct but can give a good idea to users what properties a JSON request
or response may have...
We have also started supporting Swagger - which can be good for
describing JSON only services
Cheers, Sergey
On 03/03/15 21:48, Mandy Warren wrote:
Hi,
I recently read Sergey's blog
(http://sberyozkin.blogspot.co.uk/2011/10/describing-json-services-in-wadl.html​)
about support for JSON Wadls and managed to view a wadl in JSON but am still
struggling to link the JSON schema to the wadl. My spring config looks as
follows:-
<bean id="wadlGenerator"
class="org.apache.cxf.jaxrs.model.wadl.WadlGenerator">
<property name="schemaLocations">
<list>
<value>classpath:/json.schema</value>
</list>
</property>
<property name="ignoreMessageWriters" value="false"/>
<property name="useJaxbContextForQnames" value="false"/>
</bean>
<bean id="jsonProvider"
class="org.apache.cxf.jaxrs.provider.json.JSONProvider">
</bean>
<jaxrs:server name="testResource" address="/v1/">
<jaxrs:serviceBeans>
<bean class="mandy.TestResourceV01" />
</jaxrs:serviceBeans>
<jaxrs:providers>
<ref bean="jsonProvider" />
<ref bean="wadlGenerator" />
</jaxrs:providers>
</jaxrs:server>
</beans>
When I try & access the wadl I get this error:
21:23:47.048 Could not determine bean name for instance of class
org.apache.cxf.bus.managers.ServerRegistryImpl.
com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '{' (code 123)
in prolog; expected '<'
at [row,col {unknown-source}]: [1,1]
at
com.ctc.wstx.sr.StreamScanner.throwUnexpectedChar(StreamScanner.java:647)
at
com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2054)
at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1131)
at
org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:1353)
at
org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:1247)
at org.apache.cxf.staxutils.StaxUtils.read(StaxUtils.java:1174)
at org.apache.cxf.staxutils.StaxUtils.read(StaxUtils.java:1163)
at org.apache.cxf.staxutils.StaxUtils.read(StaxUtils.java:1109)
at
org.apache.cxf.jaxrs.ext.xml.XMLSource.setBuffering(XMLSource.java:75)
at
org.apache.cxf.jaxrs.model.wadl.WadlGenerator.loadSchemasIntoCache(WadlGenerator.java:1770)
at
org.apache.cxf.jaxrs.model.wadl.WadlGenerator.setSchemaLocations(WadlGenerator.java:1752)
Any idea what I am missing?
Many thanks
Mandy
--
Sergey Beryozkin
Talend Community Coders
http://coders.talend.com/
Blog: http://sberyozkin.blogspot.com