Hello, I cannot seem to get a JSON based servive to work properly. Does anyone have a complete end to end example using the spring config to set up jettison? Ideally I want to be able to use a post or a get to a service using JSON both on request and response.
I am accessing the service via /message/ABC123DEF456/4 I am using Jettison and am getting the following exceptions: Jan 11, 2008 12:36:27 PM org.apache.cxf.interceptor.AttachmentInInterceptor handleMessage INFO: AttachmentInInterceptor skipped in HTTP GET method Jan 11, 2008 12:36:27 PM org.apache.cxf.binding.http.interceptor.DispatchInterceptor handleMessage INFO: Invoking GET on /message/ABC123DEF456/4 Jan 11, 2008 12:36:27 PM org.apache.cxf.binding.http.interceptor.URIParameterInInterceptor handleMessage INFO: URIParameterInterceptor handle message on path [/message/ABC123DEF456/4] with content-type [null] Jan 11, 2008 12:36:27 PM org.apache.cxf.phase.PhaseInterceptorChain doIntercept INFO: Interceptor has thrown exception, unwinding now org.apache.cxf.interceptor.Fault: SINGLE_PART_REQUIRED at org.apache.cxf.binding.http.interceptor.URIParameterInInterceptor.handle Message(URIParameterInInterceptor.java:82) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC hain.java:207) at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiati onObserver.java:78) at org.apache.cxf.transport.servlet.ServletDestination.doMessage(ServletDes tination.java:79) at org.apache.cxf.transport.servlet.ServletController.invokeDestination(Ser vletController.java:264) at org.apache.cxf.transport.servlet.ServletController.invoke(ServletControl ler.java:123) at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFSe rvlet.java:170) at org.apache.cxf.transport.servlet.AbstractCXFServlet.doGet(AbstractCXFSer vlet.java:152) at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica tionFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt erChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv e.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv e.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java :128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java :102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:2 63) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:84 4) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process( Http11Protocol.java:584) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:595) Jan 11, 2008 12:36:27 PM org.apache.cxf.phase.PhaseInterceptorChain doIntercept INFO: Interceptor has thrown exception, unwinding now java.lang.IllegalStateException: Invalid JSON namespace: http://cxf.apache.org/bindings/xformat at org.codehaus.jettison.mapped.MappedNamespaceConvention.getJSONNamespace( MappedNamespaceConvention.java:148) at org.codehaus.jettison.mapped.MappedNamespaceConvention.createKey(MappedN amespaceConvention.java:155) at org.codehaus.jettison.mapped.MappedXMLStreamWriter.writeStartElement(Map pedXMLStreamWriter.java:220) at org.apache.cxf.staxutils.StaxUtils.writeStartElement(StaxUtils.java:182) ) I set up my jettison properties in my beans.xml as such following other examples on this list: <jaxws:endpoint id="jBoardService" implementor="com.cbs.bos.ws.json.BoardServiceImpl" address="/jBoardService" bindingUri="http://apache.org/cxf/binding/http"> <jaxws:properties> <entry key="Content-Type" value="text/plain"/> </jaxws:properties> <jaxws:serviceFactory> <bean class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean"> <property name="wrapped" value="false"/> <property name="properties"> <map> <entry> <key><value>javax.xml.stream.XMLInputFactory</value></key> <bean class="org.codehaus.jettison.mapped.MappedXMLInputFactory"> <constructor-arg> <map> <entry key="http://BoardService.json.bos.cbs.com/" value="jBoardService"/> <entry key="http://BoardServiceImpl.json.bos.cbs.com/" value="jBoardServiceImpl"/> </map> </constructor-arg> </bean> </entry> <entry> <key><value>javax.xml.stream.XMLOutputFactory</value></key> <bean class="org.codehaus.jettison.mapped.MappedXMLOutputFactory"> <constructor-arg> <map> <entry key="http://BoardService.json.bos.cbs.com/" value="jBoardService"/> <entry key="http://BoardServiceImpl.json.bos.cbs.com/" value="jBoardServiceImpl"/> </map> </constructor-arg> </bean> </entry> </map> </property> </bean> </jaxws:serviceFactory> </jaxws:endpoint>