我在server.xml中添加了一个新上下文,以移动Webapp的ROOT目录,如下所示:

<Context path="" docBase="../sites" debug="0" reloadable="true" >
    <Resource name="jdbc/myphoto" auth="Container" type="javax.sql.DataSource"
    driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
    url="jdbc:derby:C:\apache-tomcat-7.0.12\sites\webtech\WEB-INF\lib\photo"
    maxActive="20" maxIdle="10" maxWait="-1" />
</Context>


现在由于某种原因,tomcat无法找到我的自定义Java类。我的jsp页面如下所示:

... some xhtml ...
<%@ page import="com.domain.webtech.Hello" %>
<%
    Hello h = new Hello();
    out.print(h.hello());
%>


我可以在sites / webtech / WEB-INF / classes / com / domain / webtech /中找到一个Hello.java文件,这很简单:

package com.somename.webtech;
public class Hello {
public Hello() {
}
public String hello() {
    return "hello, world!";
}
}


我对其进行了编译,甚至将其打包到一个webtech.jar文件中,并将其放置在sites / webtech / WEB-INF / lib /中。

有谁知道为什么Tomcat无法找到我的班级吗?

谢谢你的时间,

G。

最佳答案

您的docBase必须指向Web根目录。

更改

<Context docBase="../sites" ...>




<Context docBase="../sites/webtech" ...>


然后通过http://localhost:8080/page.jsp而不是http://localhost:8080/webtech/page.jsp打开您的JSP。

07-24 13:24