您的位置:首页 > 运维架构 > Tomcat

tomcat 6.0.35 设置虚拟目录 故障1

2012-08-20 12:52 232 查看
如果将“<Context path="/hbf" docBase="E:\java\my" />”放在了"<Host></Host>"外面的话

,启动tomcat6.0将会出现警告: <!--no rules found matching-->,而且设置的虚拟目录页不

生效。2012-08-20

===========================================

第六步:配置虚拟目录

打开 Tomcat6.0\conf\server.xml 文件,在 <Host> 和 </Host> 之间加入

<Context path="/myapp" docBase="D:\myapp" debug="0" reloadable="true"

crossContext="true" />

========================================

在d:\myapp文件下建立好文件夹及文件:WEB-INF\web.xml

启动tomcat服务startup.bat,在浏览器地址栏:输入:http://localhost:8080/myapp 即可访问首页 index.html,如果没有则建立好。

二、在d:\myapp建文件夹classes,将编译好的servlet文件(文件名.java):文件名.class拷贝进来。

三、在d:\myapp\WEB-INF\web.xml里注册servlet:

<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app>

<servlet>

<servlet-name>AnyName</servlet-name>

<servlet-class>HelloWorldExample</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>AnyName</servlet-name>

<url-pattern>/demo/index.html</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>AnyName</servlet-name>

<url-pattern>/action/*</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>AnyName</servlet-name>

<url-pattern>*.do</url-pattern>

</servlet-mapping>

<welcome-file-list>

<welcome-file>test.do</welcome-file>

</welcome-file-list>

</web-app>

四、保存。在浏览器地址栏:输入:http://localhost:8080/myapp/demo/index.html访问.

找到%tomcat%\conf\server.xml,在</Host>之前加入:

<Context docBase="d:\myJsp" path="/abc" />

保存文件之后,重启Tomcat即可。注意:大小写不能错! 斜杆"/"或"\"的方向别搞错。

方法二:该方法推荐使用,比较简单。

在%tomcat%\conf\Catalina\localhost(该目录可能需要手工创建)下新建一个文件abc.xml,注

意文件名中的abc就表示虚拟目录的名称,所以不可随意命名,该文件的内容为:

<Context docBase="d:\myJsp" />

重启Tomcat即可。

第一步:下载j2sdk和tomcat:到sun官方站点

最新的jdk为1.6.04,tomcat为6.0,建议jdk1.4以上,tomcat4.0以上

第二步:安装和配置你的j2sdk和tomcat:执行j2sdk和tomcat的安装程序,然后设置按照路径进

行安装即可。

1.安装j2sdk以后,需要配置一下环境变量,在我的电脑->属性->高级->环境变量->系统变量中

添加以下环境变量(假定你的j2sdk安装在c:\j2sdk1.4.2):

JAVA_HOME=c:\j2sdk1.4.2

classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(.;一定不能少,因为它

代表当前路径)

path=%JAVA_HOME%\bin

接着可以写一个简单的java程序来测试J2SDK是否已安装成功:

public class Test{

public static void main(String args[]){

System.out.println("This is a test program.");

}

}

将上面的这段程序保存为文件名为Test.java的文件。

然后打开命令提示符窗口,cd到你的Test.java所在目录,然后键入下面的命令

javac Test.java

java Test

此时如果看到打印出来This is a test program.的话说明安装成功了,如果没有打印出这句话

,你需要仔细检查一下你的配置情况。

2.安装Tomcat后,在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量(假定你

的tomcat安装在c:\tomcat):

CATALINA_HOME:c:\tomcat

CATALINA_BASE:c:\tomcat

TOMCAT_HOME: C:\Tomcat

然后修改环境变量中的classpath,把tomat安装目录下的common\lib下的servlet.jar追加到

classpath中去,修改后的classpath如下:

classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%

\common\lib\servlet-api.jar;

接着可以启动tomcat,在IE中访问http://localhost:8080,如果看到tomcat的欢迎页面的话说

明安装成功了。

第三步:建立自己的jsp app目录

1.到Tomcat的安装目录的webapps目录,可以看到ROOT,examples, tomcat-docs之类Tomcat自带

的的目录;

2.在webapps目录下新建一个目录,起名叫myapp;

3.myapp下新建一个目录WEB-INF,注意,目录名称是区分大小写的;

4.WEB-INF下新建一个文件web.xml,内容如下:

<?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>

<display-name>My Web Application</display-name>

<description>

A application for test.

</description>

</web-app>

5.在myapp下新建一个测试的jsp页面,文件名为index.jsp,文件内容如下:

<html>

<body>

<center>

Now time is: <%=new java.util.Date()%>

</center>

</body>

</html>

6.重启Tomcat

7.打开浏览器,输入http://localhost:8080/myapp/index.jsp 看到当前时间的话说明就成功了



第四步:建立自己的Servlet:

写入你的第一个Servlet:

在你新建的Application myapp/WEB-INF/classes/test目录下新建HelloWorld.java

package test;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class HelloWorld extends HttpServlet

{

public void doGet(HttpServletRequest request,HttpServletResponse response)th

rows ServletException,IOException

{

response.setContentType("text/html");

PrintWriter out = response.getWriter();

out.println("<html><head><title>");

out.println("This is my first Servlet");

out.println("</title></head><body>");

out.println("<h1>Hello,World!</h1>");

out.println("</body></html>");

}

}

然后照样用javac HelloWorld.java来编译这个文件,如果出现无法import javax.servl

et.*

那么就是应该把C:\Tomcat\common\lib里面的servlet-api.jar文件拷贝到

C:\JDK\jre\lib\ext中,再次编译,就没有问题了!

然后在Tomcat目录里面的C:\Tomcat\webapps\myapp里面按如下的文件结构:

myapp\index.jsp

myapp\WEB-INF\classes\test\HelloWorld.class(把上面生成的HelloWorld.class文件放在

这个

里面)

然后在浏览器中输入http://localhost:8080/myapp/HelloWorld,于是Server众望所归的报错了

:Error 404--Not Found

怎么回事呢?

Servlet必须使用C:\Tomcat\webapps\myapp\WEB-INF这个目录下面的web.xml文件进行注册,

用EditPlus打开这个web.xml文件,

在<web-app></web-app>添加下面这段程序:

<servlet>

<servlet-name>HelloWorld</servlet-name>

<servlet-class>test.HelloWorld</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>HelloWorld</servlet-name>

<url-pattern>/HelloWorld</url-pattern>

</servlet-mapping>

为什么呢?

因为 这样的结构

<servlet>

<servlet-name>HelloWorld</servlet-name>

<servlet-class>test.HelloWorld</servlet-class>//类的路径

</servlet>

表示指定包含的servlet类.

而以下的结构

<servlet-mapping>

<servlet-name>HelloWorld</servlet-name>

<url-pattern>/HelloWorld</url-pattern>

</servlet-mapping>

表示指定HelloServlet应当映射到哪一种URL模式。

在修改web.xml完毕过后,重新启动Server,然后再输入

http://localhost:8080/myapp/HelloWorld,,那么偌大一个Hello,World!等

着你呢,恭喜你!

第五步:建立自己java Bean

1. 在你新建的Application myapp/WEB-INF/classes/test目录下新建TestBean.java

package test;

public class TestBean

{

private String name =null;

public TestBean(String nameInit){

this.name = nameInit;

}

public void setName(String newName){

this.name=newName;

}

public String getName(){

return this.name;

}

}

然后照样用javac TestBean.java来编译这个文件。

2.然后在你新建的应用程序目录myapp下新建一个新的jsp文件:testBean.jsp

<%@ page import="test.TestBean" %>

<html>

<head>

<title>Test Bean</title>

</head>

<body>

<center>

<%

TestBean testBean = new TestBean("Http://yexin218.cublog.cn");

%>

Java Bean Test:

The author's blog address is<%=testBean.getName()%>

</center>

</body>

</html>

好了,确定各个文件的位置:

myapp\index.jsp

myapp\testBean.jsp

myapp\WEB-INF\web.xml

myapp\WEB-INF\classes\test\HelloWorld.class

myapp\WEB-INF\classes\test\TestBean.class

3.重启Tomcat如果需要的话,在浏览器输入:http://localhost:8080/myapp/testBean.jsp 幸运

的话就会看到:

Java Bean Test: The author's blog address isHttp://yexin218.cublog.cn

这样就完成了整个Tomcat下的jsp、servlet和javabean的配置。

第六步:配置虚拟目录

打开 Tomcat6.0\conf\server.xml 文件,在 <Host> 和 </Host> 之间加入

<Context path="/myapp" docBase="D:\myapp" debug="0" reloadable="true"

crossContext="true" />

======================

这几天一直在看tomcat 6的有关内容,在其文档中看到tomcat 5,6关于context的配置不同于

tomcat 4,不推荐在server.xml中进行配置,在context.xml文件中进行配置才是更好的方法。

回想以前所有的项目都是在server.xml中配置context的,每次部署一个新的应用或者修改

context内容都要重新启动tomcat,导致应用总是要中断服务一小段时间,比较不方便,而且多

个context都在server.xml中,显得有些杂乱。于是决定使用在context.xml中进行配置应用的方

式。在tomcat_home/ conf目录下有一个context..xml文件,修改其中内容之后,tomcat 能够自

动reload所有的应用。

我的应用是在 tomcat_home/webapps下部署了多个应用,这多个应用的context配置是不同的。

于是我把原来server.xml有关 context的部分(多个)复制出来,粘贴到context.xml中,保存

之后,启动tomcat ,发现启动的时候出错,看来tomcat是不支持在一个context.xml中配置多个

不同应用的。上网上google有关在context.xml中配置多个应用的方法,遗憾的是,始终无法找

到。后来仔细阅读tomcat 文档,终于找到了解决方法,在应用下面的META-INF文件夹下建立

context.xml文件就可以满足应用的定制需求。具体路径就是:

tomcat_home/webapps/yourApp/META-INF/context.xml,这样每个应用都可以拥有各自的配置,

修改了该文件中的内容,tomcat可以自动重新装载该应用,非常的方便。下面是一个可以自动重

新装载servlet和javabean(方便debug),带有数据库连接池(以Oracle为例)的context.xml文

件内容:

<?xml version="1.0" encoding="UTF-8"?>

<Context reloadable="true" crossContext="true">

<!-- Default set of monitored resources -->

<WatchedResource>WEB-INF/web.xml</WatchedResource>

<!-- Uncomment this to disable session persistence across Tomcat restarts -->

<!--

<Manager pathname="" />

-->

<Resource name="jdbc/myoracle" auth="Container"

type="javax.sql.DataSource"

driverClassName="oracle.jdbc.OracleDriver"

url="jdbc:oracle:thin:@127.0.0.1:1521:mysid"

username="scott"

password="tiger"

maxActive="20"

maxIdle="10"

maxWait="-1"/>

<Logger className="org.apache.catalina.logger.FileLogger"

prefix="localhost_DBTest_log." suffix=".txt" timestamp="true" />

<Valve className="org.apache.catalina.valves.AccessLogValve"

prefix="localhost_access_log." suffix=".txt" pattern="common" />

</Context>



阅读后发现,我们之前也果然是将很多的Context配置在同一个server.xml下;

随即照此方法去尝试,果然好了很多,那些警告不在出现了...

但是,却提示

”Cannot load JDBC driver class 'oracle.jdbc.OracleDriver' 等“,显然没有找到driver



遂将有关驱动的jar copy到//Tomcat 6.0/lib目录下面。

再试,终於ok了,^^
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: