球衣 1.19,TomEE+ 1.74。 Web.xml Url-模式工作不正常
Jersey 1.19, TomEE+ 1.74. Web.xml Url-Pattern is not working correctly
使用:Jersey 1.19,TomEE Plus 1.74
我可以通过两个不同的 urls.
访问相同的控制器方法
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>
控制器:
@Path("/hello")
public class HelloController {
@GET
@Produces("text/plain")
public String Hello(){
return "Hello, Restful world!";
}
}
根据在 stackoverfow
上找到的结果,对 TomEE system.properties 添加了内容
openejb.api.javax.ws.rs.Path.validation=false
com.sun.jersey.server.impl.cdi.lookupExtensionInBeanManager=true
没有这两个,访问带有 /rest/ 前缀的 url 会导致异常:
javax.naming.NameNotFoundException: Name [com] is not bound in this Context. Unable to find [com].
如何仅通过 /api/* url 模式限制访问?
你没有提到你使用的是哪种风格的 tomee,但如果发行版提供 jaxrs(-jaxrs 或 -plus),你将需要在 conf/conf.d/cxf-rs 中添加 disabled=true .properties.
使用:Jersey 1.19,TomEE Plus 1.74 我可以通过两个不同的 urls.
访问相同的控制器方法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>
控制器:
@Path("/hello")
public class HelloController {
@GET
@Produces("text/plain")
public String Hello(){
return "Hello, Restful world!";
}
}
根据在 stackoverfow
上找到的结果,对 TomEE system.properties 添加了内容 openejb.api.javax.ws.rs.Path.validation=false
com.sun.jersey.server.impl.cdi.lookupExtensionInBeanManager=true
没有这两个,访问带有 /rest/ 前缀的 url 会导致异常:
javax.naming.NameNotFoundException: Name [com] is not bound in this Context. Unable to find [com].
如何仅通过 /api/* url 模式限制访问?
你没有提到你使用的是哪种风格的 tomee,但如果发行版提供 jaxrs(-jaxrs 或 -plus),你将需要在 conf/conf.d/cxf-rs 中添加 disabled=true .properties.