受阻建了一个PROJECT:JEEsrc下有个包:servlets包下有俩servlet: PageRedirect.java, HelloWorld.java
 我可以分别RUN这两个吗?我单独RUN PageRedirect.java, URL like this:   http://localhost:8080/JEE/servlet/servlets.PageRedirect我单击JEE RUN后,URL like this: http://localhost:8080/JEE/ 郁闷的是,2者输途同归,结果都是:HTTP Status 404
The requested resource is not available.求解答,thank you!

解决方案 »

  1.   

    web.xml要配置这个severlet的映射才行。
      

  2.   


    都配了也不行  <servlet>
            <servlet-name>HelloWorld</servlet-name>
            <servlet-class>HelloWorld</servlet-class>
        </servlet>   
        
        
         <servlet>
         <servlet-name>PageRedirect</servlet-name>
         <servlet-class>PageRedirect</servlet-class>
     </servlet>
    <servlet-mapping>
            <servlet-name>HelloWorld</servlet-name>
            <url-pattern>/HelloWorld</url-pattern>
        </servlet-mapping>
        
         <servlet-mapping>
         <servlet-name>PageRedirect</servlet-name>
         <url-pattern>/PageRedirect</url-pattern>
     </servlet-mapping>
    好象不用mapping这部分也行?
      

  3.   

    <servlet-class>servlets.HelloWorld</servlet-class>加上包名。
    访问的时候
    http://localhost:8080/JEE/HelloWorld
    这样才行的。
      

  4.   

    http://localhost:8080/JEE/servlets/PageRedirect还是不行
      

  5.   

    建servlet的时候不要建一个java类然后自己写class,直接建servlet,相应的xml配置自动就生成了。
    假如不修改默认配置的话,url是http://localhost:8080/JEE/servlet/servlets/PageRedirect假如你的web.xml有配置index目录
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
    的话,那url:http://localhost:8080/JEE/直接跳转到index.jsp
    貌似这个配置也是建servlet项目自动生成的,假如启动了项目还404,看看你是否发布了项目。
    看你的文件名是PageRedirect和helloworld,是不是是一个response.sendRedirect()的练习跳转到HelloWorld.java????重定向用的是相对路径,查看你写的相对路径是否正确~
      

  6.   

    servlet要继承HttpServlet,重写doget或dopost或service,并且要给servlet传参。
      

  7.   

    如果项目启动本身就有错误,  你访问什么url都会是404.   这也是一种可能。
      

  8.   

    重启动Eclipse后成功但TOMCAT报错:
    SEVERE: Exception looking up UserDatabase under key UserDatabase
    javax.naming.NameNotFoundException: Name [UserDatabase] is not bound in this Context. Unable to find [UserDatabase].
    at org.apache.naming.NamingContext.lookup(NamingContext.java:820)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:168)
    at org.apache.catalina.realm.UserDatabaseRealm.startInternal(UserDatabaseRealm.java:255)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.realm.CombinedRealm.startInternal(CombinedRealm.java:201)
    at org.apache.catalina.realm.LockOutRealm.startInternal(LockOutRealm.java:120)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1109)
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:684)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:456)
    Aug 6, 2013 5:50:42 PM org.apache.catalina.realm.CombinedRealm startInternal
    SEVERE: Failed to start "org.apache.catalina.realm.UserDatabaseRealm/1.0" realm
    org.apache.catalina.LifecycleException: Failed to start component [Realm[UserDatabaseRealm]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    at org.apache.catalina.realm.CombinedRealm.startInternal(CombinedRealm.java:201)
    at org.apache.catalina.realm.LockOutRealm.startInternal(LockOutRealm.java:120)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1109)
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:684)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:456)
    Caused by: org.apache.catalina.LifecycleException: No UserDatabase component found under key UserDatabase
    at org.apache.catalina.realm.UserDatabaseRealm.startInternal(UserDatabaseRealm.java:264)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 17 more
      

  9.   

    肯定是使用了JNDI获取数据库连接,但是在Context.xml中没有配置<Resource/>导致的。如果不是那就要贴代码了 
      

  10.   

    http://localhost:8080/JEE/servlets/PageRedirect你配的url是/PageRedirect,偏偏要/servlets/PageRedirect?/servlets哪里来的?该加包名的地方不加。<servlet-class>servlets.PageRedirect</servlet-class>
      

  11.   

     我的另一个PROJECT musicstore是用了connection pool,我都忘了当时怎么配置的。虽然tomcat有错,但没影响musicstore的运行。记得好几个地方有Context.xml,你说的是哪个?
      

  12.   

    方法四:在Web项目中的META-INF目录下新建一个文件context.xml, 
     
    <?xml version='1.0' encoding='utf-8'?>
    <Context path="/musicStore">
     
        <Resource 
            name="jdbc/music" 
            auth="Container" 
            maxActive="100" maxIdle="30" maxWait="10000" 
            username="root" password="root" 
            driverClassName="com.mysql.jdbc.Driver" 
            url="jdbc:mysql://localhost:3306/music?autoReconnect=true" 
            logAbandoned="true" 
            removeAbandoned="true" 
            removeAbandonedTimeout="60" 
            type="javax.sql.DataSource" />    <Realm className="org.apache.catalina.realm.DataSourceRealm" debug="99"
            dataSourceName="jdbc/music" localDataSource="true"
            userTable="UserPass" userNameCol="Username" userCredCol="Password"
            userRoleTable="UserRole" roleNameCol="Rolename" /></Context>
    不知道 <Realm 这部分是干啥用的
      

  13.   

    我也不知道,,但是你获取数据库连接的时候传递jdbc/music 这个参数
      

  14.   

    tomcat启动出问题的话,只有可能是context.xml的配置出了问题,仔细看看你的配置信息
      

  15.   

    context.xml:<Context>
     
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
     
    <ResourceLink type="javax.sql.DataSource" name="jdbc/music" global="jdbc/music"/></Context>server.xml:<GlobalNamingResources>
    <!-- Editable user database that can also be used by UserDatabaseRealm to authenticate users -->
    <Resource validationQuery="SELECT 1" validationInterval="30000" username="root" url="jdbc:mysql://localhost:3306/music" type="javax.sql.DataSource" timeBetweenEvictionRunsMillis="30000" testWhileIdle="true" testOnReturn="false" testOnBorrow="true" removeAbandonedTimeout="60" removeAbandoned="true" password="poiu0000" name="jdbc/music" minIdle="10" minEvictableIdleTimeMillis="30000" maxWait="10000" maxActive="100" logAbandoned="true" jmxEnabled="true" jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState; org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer" initialSize="10" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" driverClassName="com.mysql.jdbc.Driver" auth="Container"/></GlobalNamingResources>
      

  16.   

    server.xml:<Realm className="org.apache.catalina.realm.LockOutRealm">
    <!-- This Realm uses the UserDatabase configured in the global JNDI resources under the key "UserDatabase". Any edits that are performed against this UserDatabase are immediately available for use by the Realm. -->
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/></Realm>