文档章节

微信公共平台开发者url/token 认证(springmvc3.2.4)

DemoDoc
 DemoDoc
发布于 2014/05/01 21:52
字数 474
阅读 3918
收藏 12

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有的时候还真会帮了倒忙。

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

<!-- 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)

@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...

所以改了

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

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

再一次google,

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

<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 


© 著作权归作者所有

共有 人打赏支持
DemoDoc
粉丝 9
博文 24
码字总数 15402
作品 0
成都
程序员
私信 提问
Jfinal-weixin Demo 开发者认证问题

@JFinal 你好,想跟你请教个问题: 请问如果把您的这个Jfinal-weixin Demo原封不动的发布到SAE中去测试,假设应用名为: testweixin.sinaapp.com,那如何在微信公众平台开发者认证界面中填写这个...

andying
2014/11/07
681
7
nodejs实现微信公众平台开发

基本原理   用nodejs怎样来实现对微信公众平台的开发呢?   别的就不多说了,先来简单介绍微信公众平台的基本原理。   微信服务器就相当于一个转发服务器,终端(手机、Pad等)发起请求...

笔阁
2016/03/07
4.5K
3
微信公众平台开发(1)-接入指南

接入指南 第一步:申请消息接口 登录https://mp.weixin.qq.com/ 后,在公众平台后台管理页面 – 开发者中心页,点击“修改配置”按钮,填写URL、Token和EncodingAESKey, 其中URL是开发者用来...

当时我就震惊啦
2014/11/26
0
0
微信公众平台如何创建自定义菜单?

微信现在的功能越来越强大了,申请认证后的开发者能自定义菜单,用户直接点击微信界面下方的菜单,就能直接去到指定的页面,下面小编用【微信公众平台测试号】为大家演示一下怎么创建自定义菜...

DavidBao
2015/04/16
0
0
SAE Token验证失败的解决方法

问题描述:填写完URL地址、Token、EncodingAESKey、消息加解密方式为兼容模式后确认显示Token验证失败。 解决方法: 1 下载官方提供的zip(http://mp.weixin.qq.com/mpres/htmledition/res/w...

iNiL0119
2015/09/07
805
0

没有更多内容

加载失败,请刷新页面

加载更多

序列化与反序列化实现

一、序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 对象序列化之后得到的字节序列,主要有两种用途:   1) 把对...

狼王黄师傅
16分钟前
0
0
Spring boot 各种常用注解总结(不断完善中)

@Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。 @Scope注解 作用域 @Lazy(true) 表示延迟初始化 @Service用于标注业务层组件、...

覃大光
17分钟前
1
1
《让家庭教育回归生活》读书笔记3000字范文

《让家庭教育回归生活》读书笔记3000字范文: 以前,只知道新东方是教英语的,也培训挖掘机司机,一直不知道他们还研究家庭教育。读了《让家庭教育回归生活》一书,才知道他们的家庭教育高峰...

原创小博客
29分钟前
1
0
spring学习笔记(二)spring 事件的使用

spring 中的事件 spring事件通过订阅发布 可以解耦操作 可以同步 可以异步 步骤 编写事件 通过继承org.springframework.context.ApplicationEvent 来编写事件 public ApplicationEvent(Obj...

NotFound403
昨天
13
0
特斯拉车主成功破解了自己Model 3汽车

据汽车博客Electrek消息,一位特斯拉车主成功破解了自己Model 3汽车,还在此基础上运行了Ubuntu。 这位叫trsohmers的网友表示,“功劳大多要归到Ingineerix的头上,他花了数月才找到初始的那...

linuxCool
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部