为什么不把测试的war也放出来呢

正在回答

登陆购买课程后可参与讨论,去登陆

8回答

同学你好!

  1. 找到你的tomcat安装目录下的conf/server.xml 文件,然后对server.xml 文件进行编辑

  2. 在这个文件里找到Context标签,如果没有找到这个标签自己添加一个也是可以的,这个标签的内容写成以下样子就可以:

    http://img1.sycdn.imooc.com//climg/5dbd5bbd09d212fd06720055.jpg

    注意:除了docBase,(它的值是你的项目的路径,同学这里从根目录写起就可以。)其它的和老师贴出来的一样就可以

  3. 修改完成后保存,重启tomcat,然后访问项目,注意此时访问项目时不需要在添加项目名称了

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~


好帮手慕柯南 2019-11-02 18:11:45

同学你好!

建议同学先解决一下路径问题再看是否还报贴出来的异常,将项目改为不使用项目名称进行访问:

修改tomcat的server.xml文件找到Context,如果没有手动添加也可以,改为下图所示样子:

http://img1.sycdn.imooc.com//climg/5dbd559609bf38aa06850065.jpg

docBase是你项目的绝对路径。然后保存,重新启动测试一下。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 慕函数5323999 #1
    没有这个文件,然后这个文件怎么配置的,看不懂
    2019-11-02 18:21:50
提问者 慕函数5323999 2019-11-02 17:16:12

02-Nov-2019 17:10:33.273 信息 [localhost-startStop-2] org.apache.catalina.core.ApplicationContext.log SessionListener: contextDestroyed()

02-Nov-2019 17:10:33.273 信息 [localhost-startStop-2] org.apache.catalina.core.ApplicationContext.log ContextListener: contextDestroyed()

02-Nov-2019 17:10:33.282 严重 [localhost-startStop-2] org.apache.catalina.core.StandardContext.listenerStop Exception sending context destroyed event to listener instance of class [com.imooc.icake.global.CatalogTreeListener]

java.lang.AbstractMethodError

at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4746)

at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5403)

at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:257)

at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1428)

at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1417)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at java.lang.Thread.run(Thread.java:748)

02-Nov-2019 17:10:54.546 信息 [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log ContextListener: contextInitialized()

02-Nov-2019 17:10:54.546 信息 [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log SessionListener: contextInitialized()

02-Nov-2019 17:10:54.547 信息 [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log ContextListener: attributeAdded('StockTicker', 'async.Stockticker@269ab431')

[root@localhost logs]# 

错误代码是这样的

  • 提问者 慕函数5323999 #1
    然后我还有个问题,在icke项目中,访问地址是不需要加项目名称的,而在linux下加载需要项目名称,所以在linux下,我访问icake只能访问到他的http://192.168.1.102:8080/icake-1.0-SNAPSHOT/index.do 系统会解析icake-1.0-SNAPSHOT/index.do 而点其他的链接,比如登录,他实际网址是 http://192.168.1.102:8080/admin/toLogin.do 因为icake项目的老师在设置规则的时候,就没给项目地址加上项目名称, 所以系统解析的是admin/toLogin.do 而在linux下访问,则需要加项目地址,这种问题怎么解决?还有该怎么避免
    2019-11-02 17:26:24
提问者 慕函数5323999 2019-11-02 16:57:39

http://img1.sycdn.imooc.com//climg/5dbd448f08265d2a00000000.jpg可以访问到了,但是图片为什么不显示呢?windows下tomcat直接运行starup.dat可以加载出来的

好帮手慕柯南 2019-11-02 10:42:10

同学你好!

建议同学去linux的tomcat下面的logs下的localhost.日期.log文件里查看一下是否有报错信息。根据报错信息解决一下,如果不可以建议同学贴一下报错信息老师看一下。

祝学习愉快~

  • 提问者 慕函数5323999 #1
    我找到原因了,是war包里面mybatis连接数据库的时候,mybatis里面的配置password跟liunx里面数据库的password不一致,因为我之前windows的mysql密码没有大写,而linux里面的密码要求大写,linux是根据war包里面配置的密码,打开linux的数据库的,所以我把window下的mysql密码设置跟linux一样,同时把icake项目里mybatis.xml里面的password设置成新的密码,再打一次war包,放到linux中运行,可以访问到项目了,但是又出了新问题,图片加载不了?看我贴出的图
    2019-11-02 16:55:28
提问者 慕函数5323999 2019-11-01 21:25:53

http://img1.sycdn.imooc.com//climg/5dbc2fe208f8b96f13780913.jpghttp://img1.sycdn.imooc.com//climg/5dbc2fe208360dca11110724.jpghttp://img1.sycdn.imooc.com//climg/5dbc134208271a1509640537.jpghttp://img1.sycdn.imooc.com//climg/5dbc13420898c58909640484.jpg


第一张图,icake项目直接在idea中通过tomcat启动没问题。

第二张图,把icake项目在idea中打成war包放入windows下的tomcat目录下的webapps启动,也可以

第三张图,把icake的war包放入linux中就不行,不知道为什么,图上面我没加后缀,我在后面加过index.do也是访问不了,然后第四张图的maven-web在linux中启动又可以访问得到,问题出在哪里?linux数据库我也已经弄好一个icake数据库,跟windows里面的icake数据库一模一样的,然后linux和windows的数据库都是5.7


提问者 慕函数5323999 2019-11-01 19:18:35

http://img1.sycdn.imooc.com//climg/5dbc13420898c58909640484.jpg

http://img1.sycdn.imooc.com//climg/5dbc134208271a1509640537.jpg


之前用老师用eclipse弄的简单的maven-web可以访问,

但是这个idea打包出来的icake的war包不行,是因为icake没有index?,我试过加后缀index,index.jsp都没用,因为icake根本没有index,而maven-web是有的,但是也不是这个原因吧?

在icake项目中,老师配置的tomcat是直接访问这个地址的http://localhost:8080/index.do

在Linux下应该怎么访问这个icake项目war包呢?

好帮手慕柯南 2019-11-01 18:57:04

同学你好!

这里没有放一个war包的原因是不同的同学可能数据库的版本以及密码都是不同的,这样会导致项目无法正常启动。所以没有放war包呢。这里建议同学可以自己打一个war包,老师在之前的视频中有讲解过maven构建的web项目如何打包,同学可以再学习一下https://class.imooc.com/lesson/902#mid=22126 

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~


  • 提问者 慕函数5323999 #1
    我用idea里面的maven工具直接package之前那个蛋糕商场的icake项目,打成war包,然后现在访问不了 ,不知道为什么
    2019-11-01 19:12:48
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师