sae 微信公共平台 springmvc maven

转自:http://my.oschina.net/igeeker/blog/229148

bae升级到3,所以转战到sae。在此,记录一下遇到的问题。

sae java环境,

1.jdk1.6,服务器jetty7.x

2.自己上传的项目里面的jar包不能跟sae上的冲突。

   因为自己的项目是maven构建,用到了dom4j,maven的自动依赖下载功能将相应的xml-apis的jar包也自动下载了。

   可但是,xml-apis这个jar包跟sae环境上的是冲突的,就会导致项目在本地正常运行,部属到服务器上就出现503等一些列的错误。

   不得不说,maven有的时候还真会帮了倒忙。

   幸好会谷歌,得到的解决方法就是

?
1
2
3
4
5
6
7
8
9
10
11
12
<!-- dom4j -->
< dependency >
  < groupId >dom4j</ groupId >
  < artifactId >dom4j</ artifactId >
  < version >1.6.1</ version >
  < exclusions >
    < exclusion >
     < artifactId >xml-apis</ artifactId >
         < groupId >xml-apis</ groupId >
     </ exclusion >
  </ exclusions >
</ dependency >

这样就可以避免xml-apis 自动被下载了

云服务器上没什么问题了,微信公共平台 url/token 验证又有问题了(后台用的是springmvc3.2.4)

?
1
2
3
4
5
6
7
8
9
10
@RequestMapping (value= "/urltoken" ,method=RequestMethod.GET,produces= "application/json;charset=UTF-8" )
     @ResponseBody
     public Object initWeixinURL(HttpServletRequest request){
         String echostr = request.getParameter( "echostr" );
         if (com.nolosing.wechat.util.WeixinURL.checkWeixinReques(request) && echostr != null ) { //验证方法省略。。
             return echostr;
         } else {
             return "error" ;
         }
     }
这种格式返回内容为json格式,所以微信验证老是不通过。

幸好又会google,原来微信要求返回字符串的格式是text/html...

所以改了

?
1
produces= "text/html;charset=UTF-8"

可是这样在springmvc接收请求后返回页面出现406错误了!!!

再一次google,

最后在springmvc-servlet.xml 配置中添加了

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
< bean class = "org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" >
         < property name = "messageConverters" >
              < util:list id = "beanList" >
                  < ref bean = "mappingJacksonHttpMessageConverter" />
                  < ref bean = "stringHttpMessageConverter" />
              </ util:list >
          </ property >
     </ bean >
      < bean id = "mappingJacksonHttpMessageConverter" class = "org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" >
          < property name = "supportedMediaTypes" >
            < list >
                  < value >application/json;charset=UTF-8</ value >
             </ list >
         </ property >
      </ bean >
      < bean id = "stringHttpMessageConverter" class = "org.springframework.http.converter.StringHttpMessageConverter" >
         < property name = "supportedMediaTypes" >
               < list >
                   < value >text/html;charset=UTF-8</ value >  
              </ list >  
         </ property >  
      </ bean >
然后问题就解决了,微信的url/token 验证也通过了。。


至于原理,请自行google 上面对应的stringHttpMessageConverter 和 mappingJacksonHttpMessageConverter 


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值