提交 85d9d513 编写于 作者: C Calvin

将JAX-RS演示放入showcase中, 重构命名规则

上级 7cea5d38
......@@ -13,7 +13,7 @@ import org.springside.examples.showcase.webservice.rest.UserDTO;
import org.springside.modules.mapper.BeanMapper;
@Path("/user")
public class AccountRestService {
public class AccountJaxRsService {
@Autowired
private AccountEffectiveService accountService;
......
......@@ -16,5 +16,5 @@
<import resource="schedule/applicationContext-quartz-timer-cluster.xml" />
<import resource="security/applicationContext-shiro.xml" />
<import resource="webservice/applicationContext-soap-server.xml" />
<import resource="webservice/applicationContext-rest-server.xml" />
<import resource="webservice/applicationContext-jaxrs-server.xml" />
</beans>
\ No newline at end of file
......@@ -7,9 +7,9 @@
<description>Apache CXF的Restful Web Service配置</description>
<!-- jax-rs endpoint定义 -->
<jaxrs:server id="serviceContainer" address="/rest">
<jaxrs:server id="serviceContainer" address="/jaxrs">
<jaxrs:serviceBeans>
<ref bean="accountRestService" />
<ref bean="accountJaxRsService" />
</jaxrs:serviceBeans>
<jaxrs:providers>
<bean class="com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider" />
......@@ -17,5 +17,5 @@
</jaxrs:server>
<!-- WebService的实现Bean定义 -->
<bean id="accountRestService" class="org.springside.examples.showcase.webservice.jaxrs.AccountRestService" />
<bean id="accountJaxRsService" class="org.springside.examples.showcase.webservice.jaxrs.AccountJaxRsService" />
</beans>
......@@ -14,31 +14,32 @@
<body>
<h1>Web Service 演示</h1>
<h2>传统SOAP Web Service演示</h2>
<h2>1. 传统SOAP Web Service演示</h2>
<ul>
<li>服务端是基于CXF的JAX-WS演示. 详见由CXF自动生成的<a href="${ctx}/cxf/soap/accountservice?wsdl">wsdl文件</a>.</li>
<li>服务端是基于CXF的JAX-WS演示, 见CXF自动生成的<a href="${ctx}/cxf/">wsdl文件列表</a>.</li>
<li>客户端见Functional Test用例.</li>
</ul>
<h2>Restful Service高级演示</h2>
<h2>2. 基于JAX-RS实现的Restful演示</h2>
<ul>
<li>服务端是基于CXF的JAX-WS演示, CXF自动生成的<a href="${ctx}/cxf/">wadl文件列表</a></li>
<li>演示地址:<a href="${ctx}/cxf/rest/user/1.xml">/cxf/rest/user/1.xml</a><a href="${ctx}/cxf/rest/user/1.xml">/cxf/rest/user/1.json</a></li>
</ul>
<h2>3. SpringMVC Restful Service高级演示</h2>
服务端:
<ul>
<li>集成Shiro进行HttpBasic的认证 </li>
<li>XML与JSON两种格式的序列化</li>
<li>演示地址:<a href="${ctx}/api/v1/user/1.xml">/api/v1/user/1.xml</a><a href="${ctx}/api/v1/user/1.xml">/api/v1/user/1.json</a></li>
<li>用浏览器访问时需要认证admin/admin</li>
<li>演示地址:<a href="${ctx}/api/v1/user/1.xml">/api/v1/user/1.xml</a><a href="${ctx}/api/v1/user/1.xml">/api/v1/user/1.json</a> (用浏览器访问时需要认证admin/admin)</li>
</ul>
客户端:
<ul>
<li>RestTemplate设置HttpHeaders的写法,用原始的exchange()方法及用ClientHttpRequestInterceptor两种方法</li>
<li>RestTemplate默认使用JDK HttpConnection,设置使用Apache HttpClient4作为Http Connection底层</li>
<li>RestTemplate底层使用用默认的JDK HttpConnection,和Apache HttpClient4</li>
<li>RestTemplate设置超时控制</li>
<li>客户端同样见Functional Test用例UserRestFt.java</li>
</ul>
<h2>基于JAX-RS实现的Restful演示</h2>
<ul>
<li>演示地址:<a href="${ctx}/cxf/rest/user/1.xml">/cxf/rest/user/1.xml</a><a href="${ctx}/cxf/rest/user/1.xml">/cxf/rest/user/1.json</a></li>
</ul>
</body>
</html>
\ No newline at end of file
package org.springside.examples.showcase.functional.rest;
import static org.junit.Assert.*;
import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.web.client.RestTemplate;
import org.springside.examples.showcase.functional.BaseFunctionalTestCase;
import org.springside.examples.showcase.webservice.rest.UserDTO;
/**
* 对基于JAX-RS的实现Restful的测试
*
* @author calvin
*/
public class UserJaxRsFT extends BaseFunctionalTestCase {
private final RestTemplate restTemplate = new RestTemplate();
private static String resoureUrl;
@BeforeClass
public static void initUrl() {
resoureUrl = baseUrl + "/cxf/jaxrs/user";
}
@Test
public void getUser() {
UserDTO user = restTemplate.getForObject(resoureUrl + "/{id}.json", UserDTO.class, 1L);
assertEquals("admin", user.getLoginName());
assertEquals(new Long(1), user.getTeamId());
user = restTemplate.getForObject(resoureUrl + "/{id}.xml", UserDTO.class, 1L);
assertEquals("admin", user.getLoginName());
assertEquals(new Long(1), user.getTeamId());
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册