cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nayan Hajratwala <na...@chikli.com>
Subject JSON parameters getting lost
Date Wed, 12 Aug 2009 15:04:10 GMT
Greetings.

I recently upgraded from cxf 2.0.4-incubator to 2.2.3.

After the upgrade it appears that my parameters are getting lost. I am
making POST JSON requests using http-binding. My config looks like this:

	<jaxws:endpoint
		id="fileManagerServiceJSON"
		implementor="#fileManagerService"
		implementorClass="com.xxx.xxx.service.filemanager.FileManagerServiceImpl"
		address="/sysadmin/filemanager/json"
		bindingUri="http://apache.org/cxf/binding/http">
		<jaxws:serviceFactory>
			<ref bean="json-service-factory" />
		</jaxws:serviceFactory>
	</jaxws:endpoint>

	<bean id="json-service-factory"
class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean"
scope="prototype">
		<property name="properties">
			<map>
				<entry key="javax.xml.stream.XMLInputFactory" value-ref="xmlIn" />
				<entry key="javax.xml.stream.XMLOutputFactory" value-ref="xmlOut" />
				<entry key="Content-Type" value="text/plain" />
			</map>
		</property>
	</bean>
	
	<util:map id="nstojns" map-class="java.util.HashMap">
		<entry key="http://domain.model.xxx.com/" value="" />
	</util:map>

	<bean id="xmlIn"
class="org.codehaus.jettison.mapped.MappedXMLInputFactory" >
		<constructor-arg ref="nstojns" />
	</bean>

	<bean id="xmlOut"
class="org.codehaus.jettison.mapped.MappedXMLOutputFactory" >
		<constructor-arg ref="nstojns" />
	</bean>


A request to the server looks like this:

Address: /xxx/service/sysadmin/filemanager/json/getBatches
Encoding: UTF-8
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Headers: {accept-encoding=[gzip,deflate], connection=[keep-alive],
referer=[http://localhost:8080/xxx/sysadmin/service-tests-admin/template.jsp?name=filemanager-getBatches&toke=null],
accept-charset=[ISO-8859-1,utf-8;q=0.7,*;q=0.7], pragma=[no-cache],
Content-Type=[application/x-www-form-urlencoded; charset=UTF-8],
x-ajax-reqid=[e], content-type=[application/x-www-form-urlencoded;
charset=UTF-8], cookie=[JSESSIONID=799AC2CFC9100A38C6BBCC7D732CD5D7;
fl-remember=FRd7UXI%3D; fl-user=; fl-pass=],
Accept=[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8],
keep-alive=[300], content-length=[40], cache-control=[no-cache],
host=[localhost:8080], accept-language=[en-us,en;q=0.5],
user-agent=[Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US;
rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2]}
Payload: {getBatches: {offset:0, maxResults:1}}  

The service method looks like this:

	public ListResult<Batch> getBatches(String offset, String maxResults) {

I've isolated the problem down to jettison, i think.  When I use 1.0RC2
(what was used with CXF 2.0.4), the offset and maxResults come through
fine. When i use the new jettison 1.1, they are null. I *need* to use the
new jettison because of bug fixes relating to array and list processing.

Any ideas?

Thanks!

-- 
  Nayan Hajratwala
  http://agileshrugged.com
  734.658.6032

Mime
View raw message