鍍金池/ 問答/Java  HTML/ Javaservlet啟動(dòng)時(shí)配置文件properties找不到路徑,在不啟動(dòng)se

Javaservlet啟動(dòng)時(shí)配置文件properties找不到路徑,在不啟動(dòng)servlet時(shí)是正常的,可以找到路徑

clipboard.png
java.io.FileNotFoundException: srccomyneusoftconfigdatabasepool.properties (系統(tǒng)找不到指定的路徑。)

at java.io.FileInputStream.open0(Native Method) ~[?:1.8.0_131]
at java.io.FileInputStream.open(FileInputStream.java:195) ~[?:1.8.0_131]
at java.io.FileInputStream.<init>(FileInputStream.java:138) ~[?:1.8.0_131]
at java.io.FileInputStream.<init>(FileInputStream.java:93) ~[?:1.8.0_131]
at com.yneusoft.until.BaseDao.<clinit>(BaseDao.java:35) [classes/:?]
at com.yneusoft.timer.payment.AliPayTransfer.execute(AliPayTransfer.java:31) [classes/:?]
at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [quartz-2.2.3.jar:?]
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [quartz-2.2.3.jar:?]

回答
編輯回答
乖乖噠

這個(gè)要理解JavaEE的架構(gòu).
java文件都是編譯到/WEB-INF/classes下的.
你這樣寫普通的java項(xiàng)目也會(huì)報(bào)錯(cuò)的,因?yàn)槭蔷幾g的bin目錄下的.
這個(gè)代碼給你參考下:

public class Index extends HttpServlet{
    private static final long serialVersionUID = 1L;
    int count=0;
    
    @Override
    public void init(ServletConfig config) throws ServletException {
        
        ServletContext context = config.getServletContext();
        //獲取classes路徑
        String path = context.getRealPath("/WEB-INF/classes");
        //保存classes路徑
        WebOption.setClassPath(path.replaceAll("\\\\", "/"));
        
        //設(shè)置日志類
        FileUtil fileDao=new FileUtil(CommUtil.classFile("/conf/log.properties"));
        LogUtil.init(fileDao.easyRead());
        
        LogUtil.println(1, this.getClass(), path);
        
        fileDao=new FileUtil(CommUtil.classFile("/conf/connect.properties"));
        DataManager.initDataSource(fileDao.hardRead());
    }
}
    /**
     * 獲取src目錄下文件,不用帶前面的net.ztw
     * @param file 例:"/conf/connect.properties"
     * @return
     */
    public static String classFile(String file){
        return WebOption.getClassPath()+WebOption.packing+file;
    }
/**
 * 整個(gè)項(xiàng)目固定配置參數(shù)
 * @author Administrator
 *
 */
public class WebOption {
    /**
     * 項(xiàng)目字符集編碼
     */
    public static final String charset="UTF-8";
    /**
     * 項(xiàng)目總包名
     */
    public static final String packing="/net/ztw";
//....
}
    <servlet>
        <servlet-name>indexServlet</servlet-name>
        <servlet-class>net.ztw.servlet.Index</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>indexServlet</servlet-name>
        <url-pattern>/index.java</url-pattern>
    </servlet-mapping>
2017年12月1日 19:23