起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 19012|回复: 22

[结贴] 微信设置URL与部署Baas的问题

  [复制链接]

5

主题

33

帖子

101

积分

初级会员

Rank: 2

积分
101
QQ
发表于 2016-1-14 22:40:54 | 显示全部楼层 |阅读模式
我在阿里云CentOS服务器上部署好了tomcat,然后把baas和我的web app都copy到了tomcat的webapps目录下,按照“部署后端服务第4讲”的方法,已经可以通过 http://我的域名:8080/mySPA/index.html 来正常访问我的web app了。

但是,按照外卖案例,新录制的第11讲“开发微信公众号”的方法配置微信URL的时候遇到了问题。

微信公众号URL只支持80端口和443端口,但是我的baas和web app按照部署后端服务的介绍,已经放到了8080端口的tomcat/webapps目录下,这两个视频讲的方法好像并不一致,为什么外卖案例那个把微信URL指向80端口的地址也能成功呢?

假设外卖案例中,把baas放到了80端口的主目录下,而不是tomcat/webapps,我尝试了把baas目录copy到服务器主目录下,结果也是不能正确配置微信URL,到底哪里出了问题?我应该怎么debug呢?
发表于 2016-1-15 10:44:05 | 显示全部楼层
tomcat 可以修改配置文件,修改端口号啊!
apache-tomcat\conf\server.xml

正式运行的web应用,一般端口号都是80 而不是8080  
当然80是可以省略不写的!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

5

主题

33

帖子

101

积分

初级会员

Rank: 2

积分
101
QQ
 楼主| 发表于 2016-1-15 11:21:07 | 显示全部楼层
我的服务器上原先是配置了一个apache的,我不能再把tomcat改成80了。有什么建议吗?
回复 支持 反对

使用道具 举报

5

主题

33

帖子

101

积分

初级会员

Rank: 2

积分
101
QQ
 楼主| 发表于 2016-1-28 18:26:20 | 显示全部楼层
liangyongfei 发表于 2016-1-15 10:44
tomcat 可以修改配置文件,修改端口号啊!
apache-tomcat\conf\server.xml

我新申请了一个阿里云的服务器,然后做了下面这些事情:
1. 没有配置apache,直接配置了tomcat,把端口改成了80
2. 在WeX5 3.3正式版 设置好了Baas的 weixin.config.xml 中的 appId, secret, token,用的是微信测试号的值
3. 确认WxMpServiceInstance() 中是 "weixin.config.xml"
4. 对Baas进行模型编译
5. 将WeX5/runtime/ 中的 BaasServer 目录改名为 baas, 并上传到阿里云服务器的 tomcat\webapps\ 目录中
6. 将WEB-INF也上传到相同目录

结果是:
如果微信测试号的URL写成“http://web.xxxx.com/baas/weixin/weixin/service” 会返回配置失效。

浏览器访问:http://web.xxxx.com/baas/weixin/weixin/service
返回“非法请求”

浏览器访问:http://web.xxxx.com/baas/baas/weixin/weixin/service
返回“HTTP Status 500 - com.justep.baas.action.ActionException: 获取Class[baas..Weixin__do]失败”
type Exception report

message com.justep.baas.action.ActionException: 获取Class[baas..Weixin__do]失败

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: com.justep.baas.action.ActionException: 获取Class[baas..Weixin__do]失败
        com.justep.baas.servlet.BaasServlet.service(Unknown Source)
        org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

com.justep.baas.action.ActionException: 获取Class[baas..Weixin__do]失败
        com.justep.baas.action.Engine.execAction(Unknown Source)
        com.justep.baas.action.Engine.execAction(Unknown Source)
        com.justep.baas.servlet.BaasServlet.execService(Unknown Source)
        com.justep.baas.servlet.BaasServlet.service(Unknown Source)
        org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

java.lang.ClassNotFoundException: baas//Weixin__do
        java.lang.Class.forName0(Native Method)
        java.lang.Class.forName(Class.java:191)
        com.justep.baas.action.Engine.execAction(Unknown Source)
        com.justep.baas.action.Engine.execAction(Unknown Source)
        com.justep.baas.servlet.BaasServlet.execService(Unknown Source)
        com.justep.baas.servlet.BaasServlet.service(Unknown Source)
        org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

还是不能成功配置URL

请问是哪里错了呢?
回复 支持 反对

使用道具 举报

5

主题

33

帖子

101

积分

初级会员

Rank: 2

积分
101
QQ
 楼主| 发表于 2016-1-28 18:36:51 | 显示全部楼层
补充一下tomcat 的log:

28-Jan-2016 18:32:09.336 SEVERE [http-nio-80-exec-3] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [WeX5_Baas_Servlet] in context with path [/baas] threw exception [com.justep.baas.action.ActionException: 获取Class[baas..Weixin__do]失败] with root cause
java.lang.ClassNotFoundException: baas//Weixin__do
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:191)
        at com.justep.baas.action.Engine.execAction(Unknown Source)
        at com.justep.baas.action.Engine.execAction(Unknown Source)
        at com.justep.baas.servlet.BaasServlet.execService(Unknown Source)
        at com.justep.baas.servlet.BaasServlet.service(Unknown Source)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:521)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)

回复 支持 反对

使用道具 举报

发表于 2016-1-29 09:12:07 | 显示全部楼层
gbcactus 发表于 2016-1-28 18:26
我新申请了一个阿里云的服务器,然后做了下面这些事情:
1. 没有配置apache,直接配置了tomcat,把端口改 ...

参考下这两个帖子:
http://bbs.wex5.com/forum.php?mod=viewthread&tid=84573
http://bbs.wex5.com/forum.php?mod=viewthread&tid=85450
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

5

主题

33

帖子

101

积分

初级会员

Rank: 2

积分
101
QQ
 楼主| 发表于 2016-1-29 10:37:39 | 显示全部楼层
liangyongfei 发表于 2016-1-29 09:12
参考下这两个帖子:
http://bbs.wex5.com/forum.php?mod=viewthread&tid=84573
http://bbs.wex5.com ...

昨天就看过那两个帖子了

1. 我的tomcat现在配置的是80端口,访问公网ip的80端口,能直接返回tomcat的页面,说明tomcat是正常的。
2. WxMpServiceInstance()中的InputStream inputStream = WxMpServiceInstance.class.getResourceAsStream("weixin.config.xml"); 是正确的。
3. “http://我的域名/baas/weixin/weixin/service” 这个也按照新版的第十一讲“开发微信公众号”改了
4. baas有重新编译,然后把WeX5/runtime/BaasServer目录改名为baas上传到tomcat/webapps/目录下。

还是有问题。还有什么注意事项我没改的吗?
回复 支持 反对

使用道具 举报

发表于 2016-1-29 11:24:27 | 显示全部楼层
gbcactus 发表于 2016-1-29 10:37
昨天就看过那两个帖子了

1. 我的tomcat现在配置的是80端口,访问公网ip的80端口,能直接返回tomcat的页 ...

是部署到自己的tomcat吧!确定不是WeX5自带的tomcat吧!!
还是报错ClassNotFoundException 吗??这就是class文件不存在,访问不到!
你看下浏览器的请求路径是什么?然后在服务器查看下这个路径是否真的存在这个文件
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

5

主题

33

帖子

101

积分

初级会员

Rank: 2

积分
101
QQ
 楼主| 发表于 2016-1-30 16:11:36 | 显示全部楼层
liangyongfei 发表于 2016-1-29 11:24
是部署到自己的tomcat吧!确定不是WeX5自带的tomcat吧!!
还是报错ClassNotFoundException 吗??这就是 ...

tomcat是我自己从官网下载然后安装到server的,不是WeX5自带的tomcat。

浏览器访问路径是这样的:
目录:/usr/local/tomcat/webapps/baas/baas/weixin/
目录中的文件:
Service.java
UserInfo.java
weixin.config.xml
weixin.service.m
Weixin__do.java
WxMpJsApi.java
WeMpServiceInstance.java
WxMpXMLInMemoryConfigStorage.java
WxPayNotify.java
        
看上去文件也是在的呀。我没有更改model - Baas的内容,直接进行的模型编译,为什么class会不在呢?
回复 支持 反对

使用道具 举报

发表于 2016-1-31 17:35:24 | 显示全部楼层
gbcactus 发表于 2016-1-30 16:11
tomcat是我自己从官网下载然后安装到server的,不是WeX5自带的tomcat。

浏览器访问路径是这样的:

没有生产class文件吗??tomcat上应该运行的是class文件才对,你重新编译下baas目录,然后把runtime下的baasServer改成baas放上去吧!
建议可以先看下视频:http://wex5.com/cn/1-wex5#06
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-17 13:14 , Processed in 0.064092 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表