转自: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"
;
}
}
|
幸好又会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
>
|
至于原理,请自行google 上面对应的stringHttpMessageConverter 和 mappingJacksonHttpMessageConverter