- 浏览: 378189 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
lgh1992314:
scugxl 写道这个java.ext.dirs属于加载的JR ...
classpath 和 java.ext.dirs 的区别 -
Oneforher:
java -Djava.ext.dirs 加载Lib后,%JA ...
classpath 和 java.ext.dirs 的区别 -
cxw1128:
java -Djava.ext.dirs=/home/ice/ ...
classpath 和 java.ext.dirs 的区别 -
suosuo230:
同感,纠结了一天了,才发现,比你们晚发现2-4年
com.ibm.icu.text.SimpleDateFormat 的陷阱 -
scugxl:
这个java.ext.dirs属于加载的JRE/LIB/EXT ...
classpath 和 java.ext.dirs 的区别
1、mybatis 数字用$,字符用#
2、cxf 关于JSONProvider 返回单个对象数组的问题。
app-rest.xml配置
javabean代码
相关源代码参见截图:
备注:
a.arrayKeys和serializeAsArray组合使用,serializeAsArray=true表示arrayKeys中提到的属性值都以数组形式返回,解决单条数据不以数组形式返回的问题。
b.arrayKeys是值需要以数组形式返回的属性名字。如上是comment而不是commentList。
4、cxf关于数字类型的字符串自动被去掉引号的问题。
具体原因参见:org.codehaus.jettison.mapped.DefaultConverter和org.codehaus.jettison.mapped.SimpleConverter
方法1:SimpleConverter的实现去重写DefaultConverter。
方法2:修改配置使其默认用SimpleConverter即可。具体怎么配置目前还不知道。
5、spring mvc rest空对象也被返回的问题。
6、spring mvc rest支持jsonp的问题。
重写MappingJacksonJsonpView 类
7、cxf rest 支持jsonp的问题。
参见:http://cxf.apache.org/docs/jax-rs-data-bindings.html#JAX-RSDataBindings-JSONWithPadding%28JSONP%29
One option for supporting "JSON With Padding" (JSONP) is to extend the default JSONProvider and override its writeTo method as follows:
Similar approach can work when Jackson is used.
Alternatively, a custom servlet filter can be used to support JSONP. Please read the Supporting JSONP blog post for more information.
Starting from CXF 2.3.4 and 2.4.0, JSONP can be supported with the help of CXF in/out interceptors:
JsonpInInterceptor checks if a JSONP callback query parameter is available (default is _jsonp) and if yes then it saves its value on the current exchange for out interceptors to know if they have to write the paddings or not. The name of the expected callback parameter can be customized. JsonpPreStreamInterceptor and JsonpPostStreamInterceptor ensure the actual JSON stream is 'padded' properly. JsonpPreStreamInterceptor will also set Content-Type to "application/x+javascript" by default but this can be changed:
8、关于ThreadLocal与线程池的问题。
Web服务器使用线程池,所以会有重用线程的问题,而ThreadLocal是根据线程ID来区分的。
http://blog.csdn.net/comliu/article/details/3186778
http://hi.baidu.com/sqxxr/item/e9946b34427c5ec02e8ec294
9、安装tomcat支持apr
http://blog.163.com/chhj_292/blog/static/12229472008101434124476/
2、cxf 关于JSONProvider 返回单个对象数组的问题。
app-rest.xml配置
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:util="http://www.springframework.org/schema/util" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxrs="http://cxf.apache.org/jaxrs" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd"> <import resource="classpath:META-INF/cxf/cxf.xml" /> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml" /> <util:list id="jsonKeys"> <value>app</value> <value>comment</value> </util:list> <util:list id="jsonTypes"> <value>application/json</value> <value>application/jettison</value> </util:list> <bean id="jsonProvider" class="org.apache.cxf.jaxrs.provider.JSONProvider"> <property name="arrayKeys" ref="jsonKeys" /> <property name="serializeAsArray" value="true" /> <property name="produceMediaTypes" ref="jsonTypes" /> <property name="consumeMediaTypes" ref="jsonTypes" /> </bean> <jaxrs:server id="commonsService" address="/"> <jaxrs:extensionMappings> <entry key="json" value="application/json" /> <entry key="xml" value="application/xml" /> </jaxrs:extensionMappings> <jaxrs:serviceBeans> <ref bean="commentsServiceImpl" /> <ref bean="userServiceImpl" /> <ref bean="postServiceImpl" /> <ref bean="contentRestImpl" /> <ref bean="collectListRestImpl" /> <ref bean="downloadListRestImpl" /> <ref bean="rankServiceRestImpl" /> <ref bean="appAddImpl" /> <ref bean="appPush" /> </jaxrs:serviceBeans> <jaxrs:providers> <ref bean="jsonProvider" /> </jaxrs:providers> </jaxrs:server> </beans>
javabean代码
import java.io.Serializable; import java.util.List; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import sgh.comment.base.model.Comments; //评论列表 @XmlAccessorType(XmlAccessType.FIELD) public class CommentsResult implements Serializable { private static final long serialVersionUID = -6304211106650057160L; /** * 总条数 */ public Integer totalCount; /** * 总页数 */ public Integer totalPage; /** * APP评论 */ @XmlElement(name="comment") public List<Comments> commentList; }
相关源代码参见截图:
备注:
a.arrayKeys和serializeAsArray组合使用,serializeAsArray=true表示arrayKeys中提到的属性值都以数组形式返回,解决单条数据不以数组形式返回的问题。
b.arrayKeys是值需要以数组形式返回的属性名字。如上是comment而不是commentList。
4、cxf关于数字类型的字符串自动被去掉引号的问题。
具体原因参见:org.codehaus.jettison.mapped.DefaultConverter和org.codehaus.jettison.mapped.SimpleConverter
方法1:SimpleConverter的实现去重写DefaultConverter。
方法2:修改配置使其默认用SimpleConverter即可。具体怎么配置目前还不知道。
5、spring mvc rest空对象也被返回的问题。
<property name="defaultViews"> <list> <!-- for application/json --> <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"> <!-- 重新设置 objectMapper --> <property name="objectMapper"> <bean class="org.codehaus.jackson.map.ObjectMapper"> <!-- 设置objectMapper的serializationConfig的serializationInclusion属性,以忽略null对象 ,也可在vo上注解@JsonWriteNullProperties(false)--> <property name="serializationConfig.serializationInclusion"> <value type="org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion">NON_NULL</value> </property> </bean> </property> </bean> <!-- for application/jsonp --> <bean class="org.springframework.web.servlet.view.jsonp.MappingJacksonJsonpView"> <!-- 重新设置 objectMapper --> <property name="objectMapper"> <bean class="org.codehaus.jackson.map.ObjectMapper"> <!-- 设置objectMapper的serializationConfig的serializationInclusion属性,以忽略null对象 ,也可在vo上注解@JsonWriteNullProperties(false)--> <property name="serializationConfig.serializationInclusion"> <value type="org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion">NON_NULL</value> </property> </bean> </property> </bean> <!-- for application/xml --> <!-- <bean class="org.springframework.web.servlet.view.xml.MarshallingView"> <property name="marshaller" ref="castorMarshaller" /> </bean> --> </list> </property>
6、spring mvc rest支持jsonp的问题。
<!-- 设置为true以忽略对Accept Header的支持,默认false --> <property name="ignoreAcceptHeader" value="false" /> <!-- 设置为true以开启对扩展名支持,默认true --> <property name="favorPathExtension" value="true" /> <!-- 用于开启 /userinfo/123?format=json的支持,默认false --> <property name="favorParameter" value="true" /> <!-- 在没有扩展名和参数时即: "/user/1" 时的默认展现形式 --> <property name="defaultContentType" value="application/xml" /> <property name="mediaTypes"> <map> <entry key="xml" value="application/xml" /> <entry key="json" value="application/json" /> <entry key="jsonp" value="application/javascript"/> </map> </property>
重写MappingJacksonJsonpView 类
package org.springframework.web.servlet.view.jsonp; import org.springframework.web.servlet.view.json.MappingJacksonJsonView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Map; public class MappingJacksonJsonpView extends MappingJacksonJsonView { /** * Default content type. Overridable as bean property. */ public static final String DEFAULT_CONTENT_TYPE = "application/javascript"; @Override public String getContentType() { return DEFAULT_CONTENT_TYPE; } /** * Prepares the view given the specified model, merging it with static * attributes and a RequestContext attribute, if necessary. Delegates to * renderMergedOutputModel for the actual rendering. * * @see #renderMergedOutputModel */ @Override public void render(Map<String, ?> model, HttpServletRequest request, HttpServletResponse response) throws Exception { if ("GET".equals(request.getMethod().toUpperCase())) { @SuppressWarnings("unchecked") Map<String, String[]> params = request.getParameterMap(); if (params.containsKey("callback")) { response.getOutputStream().write(new String(params.get("callback")[0] + "(").getBytes()); super.render(model, request, response); response.getOutputStream().write(new String(");").getBytes()); response.setContentType("application/javascript"); } else { super.render(model, request, response); } } else { super.render(model, request, response); } } }
7、cxf rest 支持jsonp的问题。
参见:http://cxf.apache.org/docs/jax-rs-data-bindings.html#JAX-RSDataBindings-JSONWithPadding%28JSONP%29
One option for supporting "JSON With Padding" (JSONP) is to extend the default JSONProvider and override its writeTo method as follows:
@Produces("application/javascript") class JsonpProvider extends JSONProvider { @Override public void writeTo(Object obj, Class<?> cls, Type genericType, Annotation[] anns, MediaType m, MultivaluedMap<String, Object> headers, OutputStream os) throws IOException { String prefix = getContext().getHttpServletRequest().getParameter("_jsonp"); boolean hasPrefix = !isEmpty(prefix); if(hasPrefix) { os.write(prefix.getBytes(HttpUtils.getSetEncoding(m, headers, "UTF-8"))); os.write('('); } super.writeTo(obj, cls, genericType, anns, m, headers, os); if(hasPrefix) { os.write(')'); } } }
Similar approach can work when Jackson is used.
Alternatively, a custom servlet filter can be used to support JSONP. Please read the Supporting JSONP blog post for more information.
Starting from CXF 2.3.4 and 2.4.0, JSONP can be supported with the help of CXF in/out interceptors:
<jaxrs:server id="bookJsonp" address="/jsonp"> <jaxrs:serviceBeans> <ref bean="serviceBean" /> </jaxrs:serviceBeans> <jaxrs:inInterceptors> <bean class="org.apache.cxf.jaxrs.provider.jsonp.JsonpInInterceptor"/> </jaxrs:inInterceptors> <jaxrs:outInterceptors> <bean class="org.apache.cxf.jaxrs.provider.jsonp.JsonpPreStreamInterceptor"/> <bean class="org.apache.cxf.jaxrs.provider.jsonp.JsonpPostStreamInterceptor"/> </jaxrs:outInterceptors> </jaxrs:server>
JsonpInInterceptor checks if a JSONP callback query parameter is available (default is _jsonp) and if yes then it saves its value on the current exchange for out interceptors to know if they have to write the paddings or not. The name of the expected callback parameter can be customized. JsonpPreStreamInterceptor and JsonpPostStreamInterceptor ensure the actual JSON stream is 'padded' properly. JsonpPreStreamInterceptor will also set Content-Type to "application/x+javascript" by default but this can be changed:
<jaxrs:server id="bookJsonp" address="/jsonp"> <jaxrs:serviceBeans> <ref bean="serviceBean" /> </jaxrs:serviceBeans> <jaxrs:inInterceptors> <bean class="org.apache.cxf.jaxrs.provider.jsonp.JsonpInInterceptor"> <property name="callbackParam" value="myjsonp"/> </bean> </jaxrs:inInterceptors> <jaxrs:outInterceptors> <bean class="org.apache.cxf.jaxrs.provider.jsonp.JsonpPreStreamInterceptor"> <property name="mediaType" value="text/x+javascript"/> </bean> <bean class="org.apache.cxf.jaxrs.provider.jsonp.JsonpPostStreamInterceptor"> <!-- default is ');' --> <property name="paddingEnd" value=")"/> </bean> </jaxrs:outInterceptors> </jaxrs:server>
8、关于ThreadLocal与线程池的问题。
Web服务器使用线程池,所以会有重用线程的问题,而ThreadLocal是根据线程ID来区分的。
http://blog.csdn.net/comliu/article/details/3186778
http://hi.baidu.com/sqxxr/item/e9946b34427c5ec02e8ec294
9、安装tomcat支持apr
cd /usr/local/apache-tomcat-6.0.18/bin/tomcat-native-1.1.14-src/jni/native/ ./configure --prefix=/usr/local/apr ./configure --with-apr=/usr/local/apr make make install
http://blog.163.com/chhj_292/blog/static/12229472008101434124476/
评论
2 楼
fengfujie
2013-08-07
cxf rest 支持jsonp的问题。我按照你这个方式返回的数据是这样的怎么回事
callback(<?xml version="1.0" encoding="UTF-8" standalone="yes"?><ats><city_list><city><adcode>100000</adcode><citycode></citycode><enable>1</enable><latitude>39.915085</latitude><longitude>116.3683244</longitude><name_en>The People's Republic of China</name_en><name_zh>中华人民共和国</name_zh><pinyin>ZhongHuaRenMinGongHeGuo</pinyin><short_code>ZHRMGHG</short_code></city><city><adcode>110000</adcode><citycode>010</citycode><enable>1</enable><latitude>39.904989</latitude><longitude>116.405285</longitude><name_en>Beijing City</name_en><name_zh>北京市</name_zh><pinyin>BeiJingShi</pinyin><short_code>BJ</short_code></city><city><adcode>110101</adcode><citycode>010</citycode><enable>1</enable><latitude>39.917544</latitude><longitude>116.418757</longitude><name_en>Dongcheng District</name_en><name_zh>东城区</name_zh><pinyin>DongChengQu</pinyin><short_code>DC</short_code></city><city><adcode>110102</adcode><citycode>010</citycode><enable>1</enable><latitude>39.915309</latitude><longitude>116.366794</longitude><name_en>Xicheng District</name_en><name_zh>西城区</name_zh><pinyin>XiChengQu</pinyin><short_code>XC</short_code></city><city><adcode>110105</adcode><citycode>010</citycode><enable>1</enable><latitude>39.921489</latitude><longitude>116.486409</longitude><name_en>Chaoyang District</name_en><name_zh>朝阳区</name_zh><pinyin>ChaoYangQu</pinyin><short_code>CY</short_code></city><city><adcode>110106</adcode><citycode>010</citycode><enable>1</enable><latitude>39.860337</latitude><longitude>116.312765</longitude><name_en>Fengtai District</name_en><name_zh>丰台区</name_zh><pinyin>FengTaiQu</pinyin><short_code>FS</short_code></city><city><adcode>110107</adcode><citycode>010</citycode><enable>1</enable><latitude>39.926085</latitude><longitude>116.186736</longitude><name_en>Shijingshan District</name_en><name_zh>石景山区</name_zh><pinyin>ShiJingShanQu</pinyin><short_code>SJS</short_code></city><city><adcode>110108</adcode><citycode>010</citycode><enable>1</enable><latitude>39.956074</latitude><longitude>116.310316</longitude><name_en>Haidian District</name_en><name_zh>海淀区</name_zh><pinyin>HaiDianQu</pinyin><short_code>HD</short_code></city><city><adcode>110109</adcode><citycode>010</citycode><enable>1</enable><latitude>39.937183</latitude><longitude>116.105381</longitude><name_en>Mentougou District</name_en><name_zh>门头沟区</name_zh><pinyin>MenTouGouQu</pinyin><short_code>MTG</short_code></city><city><adcode>110111</adcode><citycode>010</citycode><enable>1</enable><latitude>39.735535</latitude><longitude>116.139157</longitude><name_en>Fangshan District</name_en><name_zh>房山区</name_zh><pinyin>FangShanQu</pinyin><short_code>FS</short_code></city><city><adcode>110112</adcode><citycode>010</citycode><enable>1</enable><latitude>39.902486</latitude><longitude>116.658603</longitude><name_en>Tongzhou District</name_en><name_zh>通州区</name_zh><pinyin>TongZhouQu</pinyin><short_code>TZ</short_code></city><city><adcode>110113</adcode><citycode>010</citycode><enable>1</enable><latitude>40.128936</latitude><longitude>116.653525</longitude><name_en>Shunyi District</name_en><name_zh>顺义区</name_zh><pinyin>ShunYiQu</pinyin><short_code>SY</short_code></city><city><adcode>110114</adcode><citycode>010</citycode><enable>1</enable><latitude>40.218085</latitude><longitude>116.235906</longitude><name_en>Changping District</name_en><name_zh>昌平区</name_zh><pinyin>ChangPingQu</pinyin><short_code>CP</short_code></city><city><adcode>110115</adcode><citycode>010</citycode><enable>1</enable><latitude>39.755477</latitude><longitude>116.337733</longitude><name_en>Daxing District</name_en><name_zh>大兴区</name_zh><pinyin>DaXingQu</pinyin><short_code>DX</short_code></city><city><adcode>110116</adcode><citycode>010</citycode><enable>1</enable><latitude>40.324272</latitude><longitude>116.637122</longitude><name_en>Huairou District</name_en><name_zh>怀柔区</name_zh><pinyin>HuaiRouQu</pinyin><short_code>HR</short_code></city><city><adcode>110117</adcode><citycode>010</citycode><enable>1</enable><latitude>40.144783</latitude><longitude>117.112335</longitude><name_en>Pinggu District</name_en><name_zh>平谷区</name_zh><pinyin>PingGuQu</pinyin><short_code>PG</short_code></city><city><adcode>110228</adcode><citycode>010</citycode><enable>1</enable><latitude>40.377362</latitude><longitude>116.843352</longitude><name_en>Miyun County</name_en><name_zh>密云县</name_zh><pinyin>MiYunXian</pinyin><short_code>MY</short_code></city><city><adcode>110229</adcode><citycode>010</citycode><enable>1</enable><latitude>40.465325</latitude><longitude>115.985006</longitude><name_en>Yanqing County</name_en><name_zh>延庆县</name_zh><pinyin>YanQingXian</pinyin><short_code>YQ</short_code></city><city><adcode>120000</adcode><citycode>022</citycode><enable>1</enable><latitude>39.125596</latitude><longitude>117.190182</longitude><name_en>Tianjin City</name_en><name_zh>天津市</name_zh><pinyin>TianJinShi</pinyin><short_code>TJ</short_code></city><city><adcode>120101</adcode><citycode>022</citycode><enable>1</enable><latitude>39.118327</latitude><longitude>117.195907</longitude><name_en>Heping District</name_en><name_zh>和平区</name_zh><pinyin>HePingQu</pinyin><short_code>HP</short_code></city></city_list><code>1</code><message>Successful.</message><result>true</result><timestamp>1375858376</timestamp><total>3223</total><version>2.0 - 2.0.3218.1805</version></ats>)
callback(<?xml version="1.0" encoding="UTF-8" standalone="yes"?><ats><city_list><city><adcode>100000</adcode><citycode></citycode><enable>1</enable><latitude>39.915085</latitude><longitude>116.3683244</longitude><name_en>The People's Republic of China</name_en><name_zh>中华人民共和国</name_zh><pinyin>ZhongHuaRenMinGongHeGuo</pinyin><short_code>ZHRMGHG</short_code></city><city><adcode>110000</adcode><citycode>010</citycode><enable>1</enable><latitude>39.904989</latitude><longitude>116.405285</longitude><name_en>Beijing City</name_en><name_zh>北京市</name_zh><pinyin>BeiJingShi</pinyin><short_code>BJ</short_code></city><city><adcode>110101</adcode><citycode>010</citycode><enable>1</enable><latitude>39.917544</latitude><longitude>116.418757</longitude><name_en>Dongcheng District</name_en><name_zh>东城区</name_zh><pinyin>DongChengQu</pinyin><short_code>DC</short_code></city><city><adcode>110102</adcode><citycode>010</citycode><enable>1</enable><latitude>39.915309</latitude><longitude>116.366794</longitude><name_en>Xicheng District</name_en><name_zh>西城区</name_zh><pinyin>XiChengQu</pinyin><short_code>XC</short_code></city><city><adcode>110105</adcode><citycode>010</citycode><enable>1</enable><latitude>39.921489</latitude><longitude>116.486409</longitude><name_en>Chaoyang District</name_en><name_zh>朝阳区</name_zh><pinyin>ChaoYangQu</pinyin><short_code>CY</short_code></city><city><adcode>110106</adcode><citycode>010</citycode><enable>1</enable><latitude>39.860337</latitude><longitude>116.312765</longitude><name_en>Fengtai District</name_en><name_zh>丰台区</name_zh><pinyin>FengTaiQu</pinyin><short_code>FS</short_code></city><city><adcode>110107</adcode><citycode>010</citycode><enable>1</enable><latitude>39.926085</latitude><longitude>116.186736</longitude><name_en>Shijingshan District</name_en><name_zh>石景山区</name_zh><pinyin>ShiJingShanQu</pinyin><short_code>SJS</short_code></city><city><adcode>110108</adcode><citycode>010</citycode><enable>1</enable><latitude>39.956074</latitude><longitude>116.310316</longitude><name_en>Haidian District</name_en><name_zh>海淀区</name_zh><pinyin>HaiDianQu</pinyin><short_code>HD</short_code></city><city><adcode>110109</adcode><citycode>010</citycode><enable>1</enable><latitude>39.937183</latitude><longitude>116.105381</longitude><name_en>Mentougou District</name_en><name_zh>门头沟区</name_zh><pinyin>MenTouGouQu</pinyin><short_code>MTG</short_code></city><city><adcode>110111</adcode><citycode>010</citycode><enable>1</enable><latitude>39.735535</latitude><longitude>116.139157</longitude><name_en>Fangshan District</name_en><name_zh>房山区</name_zh><pinyin>FangShanQu</pinyin><short_code>FS</short_code></city><city><adcode>110112</adcode><citycode>010</citycode><enable>1</enable><latitude>39.902486</latitude><longitude>116.658603</longitude><name_en>Tongzhou District</name_en><name_zh>通州区</name_zh><pinyin>TongZhouQu</pinyin><short_code>TZ</short_code></city><city><adcode>110113</adcode><citycode>010</citycode><enable>1</enable><latitude>40.128936</latitude><longitude>116.653525</longitude><name_en>Shunyi District</name_en><name_zh>顺义区</name_zh><pinyin>ShunYiQu</pinyin><short_code>SY</short_code></city><city><adcode>110114</adcode><citycode>010</citycode><enable>1</enable><latitude>40.218085</latitude><longitude>116.235906</longitude><name_en>Changping District</name_en><name_zh>昌平区</name_zh><pinyin>ChangPingQu</pinyin><short_code>CP</short_code></city><city><adcode>110115</adcode><citycode>010</citycode><enable>1</enable><latitude>39.755477</latitude><longitude>116.337733</longitude><name_en>Daxing District</name_en><name_zh>大兴区</name_zh><pinyin>DaXingQu</pinyin><short_code>DX</short_code></city><city><adcode>110116</adcode><citycode>010</citycode><enable>1</enable><latitude>40.324272</latitude><longitude>116.637122</longitude><name_en>Huairou District</name_en><name_zh>怀柔区</name_zh><pinyin>HuaiRouQu</pinyin><short_code>HR</short_code></city><city><adcode>110117</adcode><citycode>010</citycode><enable>1</enable><latitude>40.144783</latitude><longitude>117.112335</longitude><name_en>Pinggu District</name_en><name_zh>平谷区</name_zh><pinyin>PingGuQu</pinyin><short_code>PG</short_code></city><city><adcode>110228</adcode><citycode>010</citycode><enable>1</enable><latitude>40.377362</latitude><longitude>116.843352</longitude><name_en>Miyun County</name_en><name_zh>密云县</name_zh><pinyin>MiYunXian</pinyin><short_code>MY</short_code></city><city><adcode>110229</adcode><citycode>010</citycode><enable>1</enable><latitude>40.465325</latitude><longitude>115.985006</longitude><name_en>Yanqing County</name_en><name_zh>延庆县</name_zh><pinyin>YanQingXian</pinyin><short_code>YQ</short_code></city><city><adcode>120000</adcode><citycode>022</citycode><enable>1</enable><latitude>39.125596</latitude><longitude>117.190182</longitude><name_en>Tianjin City</name_en><name_zh>天津市</name_zh><pinyin>TianJinShi</pinyin><short_code>TJ</short_code></city><city><adcode>120101</adcode><citycode>022</citycode><enable>1</enable><latitude>39.118327</latitude><longitude>117.195907</longitude><name_en>Heping District</name_en><name_zh>和平区</name_zh><pinyin>HePingQu</pinyin><short_code>HP</short_code></city></city_list><code>1</code><message>Successful.</message><result>true</result><timestamp>1375858376</timestamp><total>3223</total><version>2.0 - 2.0.3218.1805</version></ats>)
1 楼
苹果超人
2013-07-21
请问一下cxf-extension-jaxrsbinding.xml在哪个jar包中,我一直缺这个文件。
发表评论
-
classpath 和 java.ext.dirs 的区别
2012-10-29 10:36 24081先说说我的遭遇: 以下是我到运行脚本 java -cp l ... -
InputStream与String,Byte之间互转
2012-06-28 21:10 1271itStream outStream = nenputSt ... -
java操作redis
2012-05-11 16:26 26917转自:http://jzkangta.iteye. ... -
不用安装oracle客户端也可以用plsql连接远程oracle
2012-05-08 14:22 1980每次问人家,plsql 可不可以直接远程连接服务器,他们 ... -
solr no such core
2012-02-28 17:36 1625前几天配置solr3.5嵌入式的时候,老实报“no such ... -
JAVA获取文件的MD5码,比较两个文件是否相同
2012-02-21 16:41 8805System.out.println(DigestUtil ... -
java.security.AccessControlException: access denied 解决办法
2011-12-26 15:45 5584用eclipse启动tomcat时报如下错误: java. ... -
HttpClient在使用中有两个超时时间 区别
2011-11-11 16:30 7069HttpClient在使用中有两个 ... -
cvs version的管理
2011-09-14 10:14 1124我们的项目在某一阶段 ... -
Windows下使用Jconsole远程监控Linux系统中java服务器资源占用情况
2011-08-18 22:43 14211、首先需要停止正在运行的服务:resin-XXX stop ... -
Linux部署java项目注意事项
2011-07-28 11:48 20621、java命令引入jar时可以-cp参数,但时-cp不能用通 ... -
统计图表ChartDirector在Servlet和Struts2中的应用
2011-04-29 16:52 26991、公共配置 a.把ChartDirector.jar放到\ ... -
remoting服务例子
2011-04-12 11:21 18591、remoting-servlet.xml <?x ... -
com.ibm.icu.text.SimpleDateFormat 的陷阱
2011-04-11 11:16 5956在项目中经常用到SimpleDateFormat,从未出过错! ... -
写文件 faster and faster
2011-03-30 11:48 1476import java.io.BufferedWriter ... -
Spring 3.0 注解注入详解
2010-10-26 17:42 5422一、各种注解方式 1.@Aut ... -
Java 信号量 Semaphore
2010-09-16 16:58 2005操作系统的信号量是个很重要的概念,在进程控制方面都有应用。Ja ... -
Hello ServiceLoader
2010-09-16 16:36 3067ServiceLoader 类 Java SE 6 平 ... -
JAVA集合归总
2010-06-21 13:59 989集合类说明及区别 Collec ... -
Tomcat多个Context的配置
2010-04-22 15:37 12014Tomcat中给server.xml加入<Context ...
相关推荐
"SPRING-MVC-MQ-CXF-REST_Demo"这个项目很可能是用来演示如何在同一个应用中整合Spring MVC、MQ、CXF和REST技术。项目可能包含了以下部分: 1. Spring MVC配置:展示了如何设置DispatcherServlet、视图解析器以及...
在这个项目中,开发者可以学习到如何利用CXF作为服务端的REST服务提供者,以及Spring如何帮助管理和配置这些服务。 Apache CXF是一个开源的Java框架,它提供了创建Web服务的能力,包括SOAP和RESTful服务。CXF支持...
【描述】中的“webservice cxf spring jar包大全”指的是这个压缩包内集成了Apache CXF和Spring框架的多个组件,以及可能的依赖库。"下载,超好用的"表明这些JAR文件是经过验证的,且在实际开发中被广泛使用,对于...
本篇将详细介绍如何利用CXF和Spring进行REST接口的开发。 首先,我们需要在项目中引入CXF和Spring的相关依赖。在Maven工程中,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.apache.cxf ...
cxf-rest-example-master`可能包含了标准的Spring Boot项目结构,如`src/main/java`用于存放源代码,`src/main/resources`存储配置文件,`pom.xml`或`build.gradle`定义项目构建信息,还有可能包含测试代码和文档。...
4. **CXF的代码生成工具**:描述中的“将Web服务服务转成Java代码”指的是CXF的WSDL2Java工具,它可以将WSDL文件转换为Java服务接口和实现,使得开发者可以直接在Java代码中操作这些接口,而无需手动编写与Web服务...
- 在Spring配置中启用CXF的Bus,通过`<jaxrs:server>`标签定义REST服务的位置和实现。 2. **定义REST服务**: - 使用JAX-RS(Java API for RESTful Web Services)注解来声明REST资源。例如,用`@Path`定义URL...
Apache CXF 是一个开源的Java框架,...此外,他们还需要了解如何在Spring框架中集成CXF,以便更好地管理服务生命周期和依赖注入。对于更高级的使用,开发者可能需要深入研究数据绑定、安全性和性能优化等方面的知识。
在IT行业中,Spring CXF是一个广泛使用的开源框架,它整合了Spring框架的功能和Apache CXF的服务堆栈,为开发人员提供了构建和实现Web服务的强大工具。在这个“Spring CXF Restful实例”中,我们将深入探讨如何利用...
在IT行业中,构建RESTful Web服务是常见的任务,它提供了轻量级、可扩展的通信方式。本示例将详细讲解如何...在ws-cxf-rest-server这个项目压缩包中,应该包含了所有这些配置文件和源代码,你可以进一步研究和学习。
在IT行业中,Spring、CXF和Maven是三个非常重要的框架和工具,它们在构建高效、可维护的Java应用程序中发挥着关键作用。本项目整合了Spring 4、CXF 3和Maven 3,旨在创建一个服务端和客户端的完整解决方案。以下是...
在项目中,"CXFService"可能包含这些配置以及服务接口和实现。 发布服务后,你需要通过WSDL(Web服务描述语言)文件来描述你的SOAP服务,以便其他系统可以发现和调用。CXF自动生成WSDL,你可以通过指定的URL访问。...
在企业级应用开发中,Apache CXF与Spring框架的结合被广泛采用,以实现高效、灵活的Web服务开发。本文将深入探讨CXF与Spring如何整合,以及如何在Tomcat环境下部署Web服务。 #### 一、CXF与Spring整合概述 **CXF**...
在Java世界中,Spring框架和Apache CXF是两个非常重要的组件。Spring是一个全面的后端开发框架,提供了依赖注入、AOP(面向切面编程)等功能,而CXF则是一个用于构建和消费Web服务的开源框架。当我们将两者结合时,...
在这个项目中,`spring-cxf-rest-example-master`可能是项目的主分支或版本,意味着源码包含了完整的目录结构和所有必要的配置文件。这些文件可能包括: 1. **pom.xml**:Maven的项目对象模型文件,定义了项目的...
3. 定义服务接口和实现:编写符合JAX-WS或JAX-RS规范的服务接口和其实现类。 4. 创建服务发布类:使用Spring Boot的`@SpringBootApplication`注解,定义一个类,通过`@Endpoint`或`@Component`注解暴露服务。 5. ...
- 创建服务接口和实现 - 使用CXF工具生成客户端代码 - 配置服务发布和消费 - 调试和测试服务 **8. 扩展与集成** CXF可以与Spring框架无缝集成,方便进行依赖注入和事务管理。此外,它还支持多种数据绑定技术,如...
在IT行业中,Spring框架是Java企业级应用开发的首选,而CXF则是一个流行的开源服务框架,用于构建和消费Web服务。"spring 3.0.5 集成cxf"这一主题聚焦于如何将Spring 3.0.5版本与Apache CXF整合,以实现高效、灵活的...
总的来说,"spring-cxf-ws"项目提供了一系列示例,展示了如何在Spring环境中利用Apache CXF创建和消费Web服务。这些例子涵盖了从基础的SOAP和REST服务创建,到高级的特性如安全性配置和测试策略。通过研究和实践这些...
CXF使得开发者能够以简单的方式构建和实现服务,同时提供了丰富的客户端和服务器端API。 ### 3. Spring与CXF整合的意义 Spring和CXF的结合,可以让开发者利用Spring的容器管理服务,以及CXF的强大Web服务功能。通过...