亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

啟動Tomcat時加載Java類

啟動Tomcat時加載Java類

MM們 2023-06-21 14:53:13
我試圖在 tomcat 上運行項目后立即讀取 java 類,但出現 java 類錯誤未找到異常<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE web-app     PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"     "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app><listener>    <listener-class>        Bot.CarregarBot    </listener-class></listener></web-app>我在運行項目時要加載的類是 Bot.CarregarBot 類;當我運行項目并啟動服務器時,出現以下錯誤:GRAVE: Error configuring application listener of class [Bot.CarregarBot]java.lang.ClassNotFoundException: Bot.CarregarBot    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365)    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188)    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:540)    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:521)    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:150)    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4607)    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5146)    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)    at java.util.concurrent.FutureTask.run(Unknown Source)    at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)    at java.util.concurrent.AbstractExecutorService.submit(Unknown Source)    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
查看完整描述

2 回答

?
叮當貓咪

TA貢獻1776條經驗 獲得超12個贊

通常在典型的 java web 應用程序(war)結構中——編譯后的類文件應該在文件夾中結束WEB-INF/classes(除非它們可以作為 jar 歸檔,然后它們也可以在 WEB-INF/lib 中)。因此,請嘗試將項目的構建路徑更改為<your-project>/WebContent/WEB-INF/classes. 您可以參考下面所附的屏幕截圖

http://img1.sycdn.imooc.com//64929e8a0001dd5706520489.jpg

這是我嘗試使用的類以及啟動服務器時控制臺上的輸出


package Bot;


import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;


/**

 * Application Lifecycle Listener implementation class CarregarBot

 *

 */


public class CarregarBot implements ServletContextListener {


    @Override

    public void contextInitialized(ServletContextEvent event) {

        System.out.println("CarregarBot initialized");

    }


    @Override

    public void contextDestroyed(ServletContextEvent event) {


    }


}

控制臺輸出


Aug 27, 2019 1:22:47 AM org.apache.catalina.core.StandardContext reload

INFO: Reloading Context with name [/TestWebApp] has started

CarregarBot initialized

Aug 27, 2019 1:22:47 AM org.apache.catalina.core.StandardContext reload

INFO: Reloading Context with name [/TestWebApp] is completed


查看完整回答
反對 回復 2023-06-21
?
溫溫醬

TA貢獻1752條經驗 獲得超4個贊

好的,所以你的代碼看起來都很好(好,可操作),沒有問題。我 99% 確定這不是代碼問題,而是構建/部署問題。

我建議您執行以下操作:

0) 如果您使用 Maven 并具有 servlet-api 依賴項,請檢查 servlet-api 依賴項范圍(如果更改任何內容,請從 Maven 上下文菜單進行項目更新),否則請確保檢查導出和部署程序集

1)清理項目(在 eclipse 項目 -> Clean 中)

2)清理tomcat工作目錄并部署和/或重新部署(或啟動一個全新的Tomcat實例)

3)如果它仍然不起作用,請嘗試打開war文件(或者如果從eclipse部署,請轉到Tomcat工作目錄并導航到偵聽器應位于的文件夾)并檢查它是否確實存在。

4)如果沒有,請查看是否可以在“問題”視圖中找到任何問題,以了解為什么未構建它

5)如果問題仍然存在,還請檢查類輸出文件夾的設置,如 @Shailendra 所描述并重做步驟 1-4。


查看完整回答
反對 回復 2023-06-21
  • 2 回答
  • 0 關注
  • 195 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號