1、例如:http://127.0.0.1:8080/DemoTest/rest/hello/say
这样的url是怎么构成的?
http://127.0.0.1:8080/ ——这部分不用说了,JBoss提供服务的地址
DemoTest/ ——来自JBoss下部署的war包的名称DemoTest.war
rest/ ——来自web.xml的配置
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/rest</param-value>
</context-param>
<servlet-mapping>
<servlet-name>Resteasy</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
hello/ ——来自接口类的@Path配置
/say ——来自接口方法的@Path配置
@Local
@Path("/hello")
public interface IHelloWorldLocal {
@GET
@Path("/say")
@Produces("application/json")
public List<Object> say();
}
2、化简url:http://127.0.0.1:8080/DemoTest/say
调整web.xml的配置
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/</param-value>
</context-param>
<servlet-mapping>
<servlet-name>Resteasy</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
调整接口类的@Path配置
@Local
@Path("/")
public interface IHelloWorldLocal {
@GET
@Path("/say")
@Produces("application/json")
public List<Object> say();
}
附:web.xml中Resteasy完整配置
<display-name>RestTest</display-name>
<context-param>
<param-name>resteasy.jndi.resources</param-name>
<param-value>
java:global/ejb-impl/HelloWorldBean!com.ejb.hello.IHelloWorldLocal
</param-value>
</context-param>
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<!-- <param-value>/rest</param-value> -->
<param-value>/</param-value>
</context-param>
<context-param>
<param-name>resteasy.scan</param-name>
<param-value>true</param-value>
</context-param>
<listener>
<listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
</listener>
<servlet>
<servlet-name>Resteasy</servlet-name>
<servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Resteasy</servlet-name>
<!-- <url-pattern>/rest/*</url-pattern> -->
<url-pattern>/*</url-pattern>
</servlet-mapping>