2016-03-31 14 views
2

Verwendung: Jersey 1.19, TomEE Plus 1.74 Ich kann auf die gleiche Controller-Methode über zwei verschiedene URLs zugreifen.Jersey 1.19, TomEE + 1.74. Web.xml Url-Pattern funktioniert nicht richtig

http://localhost:8080/hello 
http://localhost:8080/rest/hello 

web.xml:

<init-param> 
    <param-name> 
     com.sun.jersey.config.property.packages 
    </param-name> 
    <paramvalue> 
     mif.ubermensch.labanorogiraite.presentation.controllers 
    </param-value> 
</init-param> 
<load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>LabanoroGiraite</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
</servlet-mapping> 
<welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
</welcome-file-list> 

Controller:

@Path("/hello") 
public class HelloController { 
    @GET 
    @Produces("text/plain") 
    public String Hello(){ 
     return "Hello, Restful world!"; 
    } 
} 

Zugänge beruhten auf Ergebnis auf stackoverfow

openejb.api.javax.ws.rs.Path.validation=false 
com.sun.jersey.server.impl.cdi.lookupExtensionInBeanManager=true 

Ohne diese gefunden zu TomEE system.properties gemacht zwei, Zugang singt eine URL mit dem/rest/Präfix ein excepion verursachen würde:

javax.naming.NameNotFoundException: Name [com] is not bound in this Context. Unable to find [com]. 

Wie man den Zugang zu beschränken nur durch die/api/* URL-Muster?

Antwort

0

Sie erwähnen nicht, welchen Geschmack von tomee Sie verwenden, aber wenn eine Distribution Jaxrs (-jaxrs oder -plus) zur Verfügung stellt, müssen Sie in conf/conf.d/cxf-rs.properties disabled = true hinzufügen.

+0

genial! Vielen Dank – Operatorius