2012-09-16 10 views
6

मैं एक "जेट्टी और Maven के साथ स्टैंडर्ड WebApp" ठीक ग्रहण विकि पर वर्णित के रूप में बनाने के लिए निर्देशों का पालन किया है वेबपैप चलाएं (एमवीएन जेट्टी: रन) और लोकलहोस्ट पर जाएं: 8080/हैलो-वर्ल्ड/हैलो मैं एक "HTTP त्रुटि 404 समस्या का उपयोग/हैलो-वर्ल्ड/हैलो पर समाप्त होता हूं। कारण: नहीं मिला"। मैंने दस्तावेज के माध्यम से पढ़ा है, विकी पेज के इतिहास को देखा है, अन्य मंचों और स्टैक ओवरफ्लो धागे के चारों ओर पोक किया है, लेकिन इस प्रतीत होता है कि यह सरल समस्या का उत्तर नहीं मिल रहा है। मैं अपना स्रोत पोस्ट करूंगा, लेकिन यह सचमुच ट्यूटोरियल जैसा ही है।404 एक सरल जेट्टी में नहीं मिला त्रुटि/Maven नमस्ते विश्व webapp

किसी भी मदद की सराहना की जाएगी। मैं वास्तव में इस तकनीक के साथ खेलना शुरू करना चाहता हूं लेकिन एक ही मृत अंत में झुकाव रखने के लिए निराशाजनक हूं।

(कृपया ध्यान दें:।। ट्यूटोरियल के पहले भाग "JettyMavenHelloWorld" काम ठीक बनाने के लिए मेरे समस्या दूसरे भाग, "JettyMavenHelloWarApp" यह खंड शीर्षक है के साथ है "विकासशील जेट्टी और Maven के साथ एक मानक WebApp")

JettyMavenHelloWarApp/pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 

    <modelVersion>4.0.0</modelVersion> 
    <groupId>org.example</groupId> 
    <artifactId>hello-world</artifactId> 
    <version>0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 
    <name>Jetty HelloWorld</name> 

    <properties> 
    <jettyVersion>7.2.0.v20101020</jettyVersion> 
    </properties> 

    <dependencies> 
    <dependency> 
     <groupId>org.eclipse.jetty</groupId> 
     <artifactId>jetty-server</artifactId> 
     <version>${jettyVersion}</version> 
    </dependency> 
    </dependencies> 

    <build> 
    <plugins> 
     <plugin> 
     <!-- This plugin is needed for the servlet example --> 
     <groupId>org.mortbay.jetty</groupId> 
     <artifactId>jetty-maven-plugin</artifactId> 
     <version>${jettyVersion}</version> 
     </plugin> 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>exec-maven-plugin</artifactId> 
     <version>1.1</version> 
     <executions> 
      <execution><goals><goal>java</goal></goals></execution> 
     </executions> 
     <configuration> 
      <mainClass>org.example.HelloWorld</mainClass> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

JettyMavenHelloWarApp/src/मुख्य/जावा/org/उदाहरण/HelloServlet.java

package org.example; 

import java.io.IOException; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

public class HelloServlet extends HttpServlet 
{ 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    { 
     response.setContentType("text/html"); 
     response.setStatus(HttpServletResponse.SC_OK); 
     response.getWriter().println("<h1>Hello Servlet</h1>"); 
     response.getWriter().println("session=" + request.getSession(true).getId()); 
    } 
} 

जेट tyMavenHelloWarApp/src/मुख्य/webapp/वेब-INF/web.xml

<?xml version="1.0" encoding="ISO-8859-1"?> 
<web-app 
    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_2_5.xsd" 
    version="2.5"> 
    <servlet> 
    <servlet-name>Hello</servlet-name> 
    <servlet-class>org.example.HelloServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>Hello</servlet-name> 
    <url-pattern>/hello/*</url-pattern> 
    </servlet-mapping> 
</web-app> 

JettyMavenHelloWarApp/src/मुख्य/webapp/index.html

<h1>Hello World Webapp</h1> 
<a href="/hello">Hello Servlet</a> 

उत्तर

11

ट्यूटोरियल गलत url देता है - अपने ऐप्लिकेशन संदर्भ अभी भी "/", है इसलिए क्रमशः स्थिर और गतिशील सामग्री के लिए यूआरएल http://localhost:8080 और http://localhost:8080/hello हैं।

मेवेन जेट्टी प्लगइन दस्तावेज दावा करता है कि डिफ़ॉल्ट संदर्भ को pom.xml में artifactId के समान नाम दिया जाएगा, लेकिन ऐसा लगता है कि यह यहां काम नहीं कर रहा है।

+4

क्षमा करें, क्या होगा यदि ऐप 'http: // localhost: 8080' पर भी नहीं मिला है? – tonix

0

मुझे लगता है कि अपने पोम में घाट प्लगइन परिभाषा के विन्यास जोड़ने हैलो-दुनिया के लिए contextpath बदलना चाहिए:

 <plugin> 
      <groupId>org.eclipse.jetty</groupId> 
      <artifactId>jetty-maven-plugin</artifactId> 
      <version>${jettyVersion}</version> 
      <configuration> 
       <webApp> 
        <contextPath>/hello-world</contextPath> 
       </webApp> 
      </configuration> 
     </plugin> 

इस घाट संस्करण 9. पर आधारित है कॉन्फ़िगरेशन विकल्प के लिए http://wiki.eclipse.org/Jetty/Feature/Jetty_Maven_Plugin देखें।

2

मैं एक ही मुद्दे में भाग गया और मेरे लिए जो काम किया वह ऐप तक पहुंच रहा था: http://localhost:8080/hello/index.jsp या http://localhost:8080/hello/index.html, जो भी आप एचटीएमएल या जेएस पेज का उपयोग कर रहे हैं।

0

मुझे मूल विन्यास के साथ एक ही समस्या थी।

मैं एक त्रुटि पृष्ठ इस विन्यास (web.xml में) के साथ साथ स्प्रिंग 3 MVC रीडायरेक्ट करने के लिए

<error-page> 
     <error-code>404</error-code> 
     <location>/WEB-INF/views/error.html</location> 
</error-page> 

मैं error.html के विस्तार बदलकरerror.jsp लिए इसे हल करना चाहता था।

0

मुझे लगता है कि आप mvn package कार्य mvn jetty:run से पहले नहीं चलाते हैं, यही कारण है कि जेटी को कोई स्रोत नहीं दिखता है। पहले mvn package चलाएं।

संबंधित मुद्दे