have the following data in my pom.xml
<dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.9.13</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.1.1</version> </dependency> <dependency> <groupId>org.apache.tiles</groupId> <artifactId>tiles-extras</artifactId> <version>3.0.5</version> </dependency> <dependency> <groupId>org.apache.tiles</groupId> <artifactId>tiles-core</artifactId> <version>3.0.5</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring-framework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.1.1.RELEASE</version> </dependency> <dependency> <groupId>com.googlecode.json-simple</groupId> <artifactId>json-simple</artifactId> <version>1.1</version> </dependency>
config.xml applications:
<context:component-scan base-package="com.test" /> <mvc:annotation-driven /> <mvc:resources mapping="/resources/**" location="/resources/" />
JSP page:
<form:form method="POST" action="/QuickBooks-UX/syncAccounts"> <input type="submit" value="Sync Account"/> </form:form>
Controller:
@Controller @RequestMapping("/") public class QuickBooksController { @RequestMapping(value = "/quickBooks", method = RequestMethod.GET) public String qucikBooks(ModelMap model) { logger.info("Welcome to QuickBooks controller"); model.addAttribute("message", "Hello Spring MVC Framework!"); return "quickBooks"; } @RequestMapping(value ="/syncAccounts", method = RequestMethod.POST) public @ResponseBody List<SyncData> syncAccounts(@ModelAttribute("syncData")SyncData syncData, ModelMap model, BindingResult result) { List<SyncData> syncDataList = new ArrayList<SyncData>(); try { DefaultHttpClient httpClient = new DefaultHttpClient(); HttpGet getRequest = new HttpGet( "http://localhost:8292/qbsyncdata/getAccounts"); getRequest.addHeader("accept", "application/json"); HttpResponse response = httpClient.execute(getRequest); if (response.getStatusLine().getStatusCode() != 200) { throw new RuntimeException("Failed : HTTP error code : " + response.getStatusLine().getStatusCode()); } BufferedReader br = new BufferedReader( new InputStreamReader((response.getEntity().getContent()))); while ((output = br.readLine()) != null) { JSONParser jsonParser = new JSONParser(); JSONArray jsonArray = (JSONArray)jsonParser.parse(output); for (Object object : jsonArray) { JSONObject jsonObject = (JSONObject)object; syncData = new SyncData(); syncData.setAccountName(jsonObject.get("accountName")==null?"":jsonObject.get("accountName").toString()); syncData.setAccountType(jsonObject.get("accountType")==null?"":jsonObject.get("accountType").toString()); syncData.setAccountSubType(jsonObject.get("accountSubType")==null?"":jsonObject.get("accountSubType").toString()); syncData.setActive(jsonObject.get("active")==null?"":jsonObject.get("active").toString()); syncDataList.add(syncData); } model.addAttribute("syncData", output); } httpClient.getConnectionManager().shutdown(); } catch (Exception e) { e.printStackTrace(); } } return syncDataList; } }
I call my url as:
http:
After clicking a button that returns a URL like http://lt-50k7sy1:8080/QuickBooks-UX/syncAccounts it returns 406, and the description:
the resource identified by this request is able to generate responses with characteristics that are not acceptable in accordance with the request to “accept” headers
I followed this link , but no results.
json spring spring-mvc
bekur Oct 28 '14 at 18:07 2014-10-28 18:07
source share