Der Eclipse-Java-EE und Tomcat 7: Fehler 404 die angeforderte Ressource nicht verfügbar ist
Tomcat 7 in Eclipse Java EE ist die Anzeige von HTTP-STATUS 404, und DIE ANGEFORDERTE RESSOURCE IST NICHT VERFÜGBAR.
1) ich weiß nicht, was ich nicht bin, es richtig zu machen? Ich habe gelesen, lädt der post auf die Augen und versucht, zu tun, was möglich war zu tun, aber nichts hat sich verändern. In einigen Fällen bekam ich wieder mein source-code als herunterladbare text-Datei.
Dies ist mein servlet-Programm unter:
package dbservlet;
//all imports here
public class TennisdbaseServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public TennisdbaseServlet() {}
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
Context envContext = null;
try {
Context envContext = new InitialContext();
DataSource ds = (DataSource)envContext.lookup("java:/comp/env/jdbc/postgres");
Connection con = ds.getConnection();
Statement stmt = con.createStatement();
String query = "select * from tennis_teams";
ResultSet rs = stmt.executeQuery(query);
PrintWriter out = response.getWriter();
response.setContentType("text/html");
out.print("<center><h1>Tennis Teams Info</h1></center>");
out.print("<html><body><table border=\"1\" cellspacing=10 cellpadding=5>");
out.print("<th>TEAM NUMBER</th>");
out.print("<th>PLAYER NO</th>");
out.print("<th>DIVISION</th>");
while(rs.next())
{
out.print("<tr>");
out.print("<td>" + rs.getInt("teamno") + "</td>");
out.print("<td>" + rs.getString("playerno") + "</td>");
out.print("<td>" + rs.getDouble("division") + "</td>");
out.print("</tr>");
}
out.print("</table></body></html>");
} catch (SQLException e) {
e.printStackTrace();
} catch (NamingException e) {
e.printStackTrace();
}
}
}
Und folgende ist meine /META-INF/Context.xml code:
<?xml version="1.0" encoding="UTF-8"?>
<!-- The contents of this file will be loaded for web application -->
<Context crossContext="true" docBase="TennisdbaseServlet" path="" reloadable="true" >
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/postgres" auth="Container"
type="javax.sql.DataSource"
driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://localhost:5432/tennisDB"
username="ssssss"
password="ssssss"
maxActive="20"
maxIdle="10"
maxWait="-1"/>
</Context>
Und auch unten ist meine /Web_INF/web.xml :
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns /j2ee/web-app_2_4.xsd">
<resource-ref>
<description>postgreSQL DataSource for Tennis Database Application</description>
<res-ref-name>jdbc/postgres</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<display-name>TennisDatabasePool</display-name>
<servlet>
<servlet-name>TennisdbaseServlet</servlet-name>
<servlet-class>dbservlet.TennisdbaseServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TennisdbaseServlet</servlet-name>
<url-pattern>/TennisdbaseServlet.do</url-pattern>
</servlet-mapping>
</web-app>
Die Ausgabe in der Konsole ist:
Nov 28, 2013 1:42:29 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java \jre7\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Common Files\Microsoft Shared\Microsoft Online Services;C:\Program Files (x86)\Common Files\Microsoft Shared\Microsoft Online Services;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static\;C:\Program Files (x86)\Java\jre6\bin;C:\Program Files (x86)\Windows Live\Shared;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;PATH=C:\Program Files\Java\jdk1.7.0_45\bin;C:\Program Files\Common Files\Microsoft Shared\Microsoft Online Services;C:\Program Files (x86)\Common Files\Microsoft Shared\Microsoft Online Services;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static\;C:\Program Files (x86)\Java\jre6\bin;C:\Program Files (x86)\Windows Live\Shared;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;PATH=C:\Program Files\Java\jdk1.7.0_45\bin;%PATH%;C:\Program Files\System Center Operations Manager 2007\;C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\System Center Operations Manager 2007\;C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Files (x86)\Graphviz2.30\bin;C:\Program Files (x86)\MySQL\MySQL Utilities 1.3.4\;C:\Program Files\Java\jdk1.7.0_45\bin;C:\Program Files\Java\jre7\bin;.
Nov 28, 2013 1:42:33 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8010"]
Nov 28, 2013 1:42:33 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Nov 28, 2013 1:42:33 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 5546 ms
Nov 28, 2013 1:42:33 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Nov 28, 2013 1:42:33 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.47
Nov 28, 2013 1:42:39 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor C:\Users\Windows\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\conf\Catalina\localhost\TennisDatabasePool.xml
Nov 28, 2013 1:42:40 PM org.apache.catalina.startup.SetContextPropertiesRule begin
WARNING: [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.server:TennisDatabasePool' did not find a matching property.
Nov 28, 2013 1:42:43 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8010"]
Nov 28, 2013 1:42:43 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Nov 28, 2013 1:42:43 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 10091 ms
Ihre Hilfe wird sehr geschätzt.
- Könnten Sie erwähnen die URL, die Sie versuchen, zu schlagen, was Ihnen dieser Fehler?
- Dies die url, die ich traf: localhost:8010/TennisDatabasePool/WEB-INF/classes/dbservlet/...
- Sie überlegen Verkürzung deine Frage so, dass es nur was nötig ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als haben Sie nicht die URL, die Sie verwenden, ich vermute, dass Sie möglicherweise fehlt der Context-Root in der URL. Idealerweise sollten Sie eine URL ähnlich wie diese für den Zugriff auf servlet:
wo
context_root
ist normalerweise der name der Applikation (war-Datei). Zum Beispiel, wenn Sie Ihre war-Datei istMyApplication.war
, dann müssen Sie die URL unten:Jedoch, Sie haben die option zum überschreiben, dieses mit Context.xml Datei Tomcat. Zum Beispiel, unten
<Context>
tag in Context.xml würden die context_root zuSomeApp
Dann, auf die gleiche Anwendung, die Sie verwenden können, URL:
Wenn mit der
j2ee
Ansicht ist, die alsJSP
warum sind u Sie tun es mit servlets nur .Versuchen Sie, es zu tun mit JSP.Auch ich denke, dass Ihre access-Muster, das servlet nicht richtig dies sollte einige Sache wie diesehttp://localhost:port/app-name/dbservlet
.Auch u nicht definiert haben jede servlet miturl-pattern
/dbservlet
. Unten ist ein gutes tutorial, können Sie mit start.http://www.mkyong.com/servlet/a-simple-servlet-example-write-deploy-run/
Ich weiß wirklich nicht verstehen, wie könnte man den folgenden code noch kompilieren:
Zuerst sollten Sie immer loswerden compile-Zeit Fehler, und dann versuchen, rufen Sie das servlet: unten ist die zu einem compiler-Fehler-frei-code:
Versuchen Sie es mit dieser ersten und dann Debuggen den Fehler künftig wenn überhaupt!!