2016-05-21 14 views
-1

Ich habe auf einem hochgeladen ... sagen wir www.mywebsite.com a/helloservlet/und in/helloservlet/Ich habe eine index.html, die eine einfache Hallo Welt zeigt! Das funktioniert gut, aber wenn ich eine Java-Anwendung setzen will, ich hochgeladen ein /WEB-INF/web.xml mit:Das Hochladen von Java auf eine Website funktioniert nicht

<?xml version="1.0" encoding="ISO-8859-1"?> 
<web-app version="3.0" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 

    <servlet> 
     <servlet-name>HelloWorldServlet</servlet-name> 
     <servlet-class>mypkg.HelloServlet</servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>HelloWorldServlet</servlet-name> 
     <url-pattern>/sayhello</url-pattern> 
    </servlet-mapping> 
</web-app> 

und in /helloservlet/WEB-INF/src/mypkg/HelloServlet.java mit

package mypkg; 

import java.io.*; 
import javax.servlet.*; 
import javax.servlet.http.*; 

public class HelloServlet extends HttpServlet { 
    @Override 
    public void doGet(HttpServletRequest request, HttpServletResponse response) 
       throws IOException, ServletException { 
     // Set the response message's MIME type 
     response.setContentType("text/html;charset=UTF-8"); 
     // Allocate a output writer to write the response message into the network socket 
     PrintWriter out = response.getWriter(); 

     // Write the response message, in an HTML page 
     try { 
     out.println("<!DOCTYPE html>"); 
     out.println("<html><head>"); 
     out.println("<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>"); 
     out.println("<title>Hello, World</title></head>"); 
     out.println("<body>"); 
     out.println("<h1>Hello, world!</h1>"); // says Hello 
     // Echo client's request information 
     out.println("<p>Request URI: " + request.getRequestURI() + "</p>"); 
     out.println("<p>Protocol: " + request.getProtocol() + "</p>"); 
     out.println("<p>PathInfo: " + request.getPathInfo() + "</p>"); 
     out.println("<p>Remote Address: " + request.getRemoteAddr() + "</p>"); 
     // Generate a random number upon each request 
     out.println("<p>A Random Number: <strong>" + Math.random() + "</strong></p>"); 
     out.println("</body>"); 
     out.println("</html>"); 
     } finally { 
     out.close(); // Always close the output writer 
     } 
    } 
} 

aber wenn ich versuche

http://www.mywebsite.com/helloservlet/sayhello 

Es gibt mir einen Fehler. Was ist das Problem?

Danke!

+0

Haben Sie die Protokolldateien gelesen? – selten98

+0

hieß es AH00128: Datei existiert nicht:/htdocs/sayhello aber ich dachte/sayhello ist in web.xml der Java-Klasse zugeordnet ... – WDrgn

+0

Verwenden Sie einen Anwendungsserver wie Tomcat? Und wenn Sie es sind, haben Sie versucht, Ihren Code zu einem WAR zu kompilieren und diesen hochzuladen? – selten98

Antwort

1

Verwenden Sie einen Java-Anwendungsserver auf dem Computer, auf dem der Code gehostet werden soll, z. B. Tomcat. Dann lade das .war auf diese Tomcat-Instanz (oder Glassfish oder was auch immer) hoch, dies sollte dein Problem beheben.

+0

Ich werde einen JBoss verwenden, danke! – WDrgn

Verwandte Themen