2017-06-26 1 views
1

Ich bin etwas verwirrt mit dem Konzept von RESTfull Web-Service.Tomcat wird gestoppt, während ich meine Web-App darauf laufen lasse

Wie ich meine Webanwendung auf Server ausführen, gibt mein Server Fehler.

Hier ist meine UserService.java

package com.service; 

import javax.ws.rs.DELETE; 
import javax.ws.rs.GET; 
import javax.ws.rs.POST; 
import javax.ws.rs.PUT; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType; 

@Path("/user/service") 
public class UserService { 

    @PUT 
    public void createUser() {} 

    @GET 
    @Produces(MediaType.TEXT_PLAIN) 
    public void getUser() { 
     System.out.println("Heyy, it's getting the user"); 
    } 

    @POST 
    @Produces(MediaType.TEXT_PLAIN) 
    public void updateUser() { 
     System.out.println("Heyy, it's updating the user"); 
    } 

    @DELETE 
    public void deleteUser() {} 

    @Path("/special") 
    public SpecialUser getSpecialUser() { 
     return new SpecialUser(); 
    } 

} 

Und hier ist meine web.xml Datei

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> 
    <display-name>RestWSdemo</display-name> 
    <welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
    <welcome-file>default.html</welcome-file> 
    <welcome-file>default.htm</welcome-file> 
    <welcome-file>default.jsp</welcome-file> 
    </welcome-file-list> 

    <servlet> 

    <servlet-name>webService</servlet-name> 
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 

    <init-param> 
     <param-name>jersey.config.server.provider.packages</param-name> 
     <param-value>com.service</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 

    </servlet> 

    <servlet-mapping> 
    <servlet-name>webServices</servlet-name> 
    <url-pattern>/*</url-pattern> 
    </servlet-mapping> 

</web-app> 

Ich denke, da etwas, das ich in web.xml bin fehlt.

Wenn ich meinen Server starte, ohne diese Ressourcen hinzuzufügen, wird er normalerweise unter localhost:8080 gestartet.

Aber wie ich meine Anwendung auf dem Server ausführen, erhalte ich diese Fehlermeldung auf console mit einer Fehlermeldung. ServerError

Bitte jemand helfen Sie mir davon.

Antwort

1

Ihre Servletzuordnung nicht Ihren Servlet-Namen übereinstimmen, ein webService genannt wird, der andere webServices:

<servlet> 
    <servlet-name>webService</servlet-name> 
    <!-- ... --> 
</servlet> 

<servlet-mapping> 
    <servlet-name>webServices</servlet-name> 
    <!-- ... --> 
</servlet-mapping> 

Stellen Sie sicher, dass beide Namen gleich sind.

Für was es wert ist: die Fehlermeldung, die die Hauptursache für Ihr Problem angibt, ist diejenige, die vor der in Ihrem Screenshot erscheint. Veröffentlichen Sie keine Screenshots, sondern fügen Sie stattdessen das komplette StackTrace in Ihre Frage ein.

+0

Oh meine Dummheit, ich dachte, die Fehlerdialogbox hilft, den Fehler herauszufinden, also habe ich das Bild hinzugefügt. Okay, ich werde deinen Vorschlägen folgen. Danke vielmals. – Shambhu

Verwandte Themen