同步发表在:http://www.xeclipse.com/?p=1366
创建了一个简单的REST Web Service,使用Java代码访问完全OK,但是用SOAP UI就一直出现500的错误,简单的Google一下,发现了问题。小结一下。
错误的截图:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 500 Could not resolve view with name 'employees' in servlet with name 'rest'</title>
</head>
<body>
<h2>HTTP ERROR 500</h2>
<p>
Problem accessing /service/employees. Reason:
<pre>Could not resolve view with name 'employees' in servlet with name 'rest'</pre>
</p>
<h3>Caused by:</h3>
<pre>javax.servlet.ServletException: Could not resolve view with name 'employees' in servlet with name 'rest'
REST的地址为:http://localhost:8082/service/employees, 使用浏览器可以正常访问,显示
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Employees</title>
</head>
<body>
<table border=1>
<thead><tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
</tr></thead>
<tr>
<td>1</td>
<td>Huang Yi Ming</td>
<td>huangyim@cn.ibm.com</td>
</tr>
<tr>
<td>2</td>
<td>Wu Dong Fei</td>
<td>wudongf@cn.ibm.com</td>
</tr>
</table>
</body>
</html>
说明REST 服务OK,使用SOAP UI等工具就有问题了,这里有个东西需要注意:
Accept必须设置,默认为“*/*;”
比如:
当然,如果你的REST服务制定需要某种Accept,就需要设置为其他了:
@RequestMapping(method=RequestMethod.GET, value="/emps", headers="Accept=application/xml, application/json")
public @ResponseBody EmployeeList getAllEmp() {
这里就可以设置为
Accept = application/xml 或者 applicaiton/json