相关疑难解决方法(0)

带有点(.)的Spring MVC @PathVariable被截断了

这是Spring MVC @PathVariable被截断的问题的延续

Spring论坛声明它已修复(3.2版本)作为ContentNegotiationManager的一部分.见下面的链接.
https://jira.springsource.org/browse/SPR-6164
https://jira.springsource.org/browse/SPR-7632

在我的应用程序中,带有.com的requestParameter被截断.

谁能解释我如何使用这个新功能?它是如何在xml中配置的?

注意:spring论坛 - #1带有点(.)的Spring MVC @PathVariable正在被截断

rest spring spring-mvc spring-annotations

345
推荐指数
14
解决办法
14万
查看次数

平面文件数据库

在PHP中创建平面文件数据库结构的最佳实践是什么?

我看到很多比较成熟的PHP平面文件框架试图实现类似SQL的查询语法,这在大多数情况下都是我的目的(我只会在那时使用数据库).

是否有任何优雅的技巧,以获得良好的性能和功能与小代码开销?

php sql database flat-file

116
推荐指数
11
解决办法
6万
查看次数

Spring MVC + JSON = 406不可接受

我正在尝试生成一个简单的JSON响应.现在我得到406 Not Acceptable错误.Tomcat说:"此请求标识的资源只能根据请求"接受"标题生成具有不可接受特征的响应." 即使我的Accept标题是

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Run Code Online (Sandbox Code Playgroud)

在tomcat/lib中,我有所有Tomcat jar,Spring jar和jackson-all-1.9.0.jar.我正在使用Spring 3.2.2和Tomcat 7.

我知道这个问题已经讨论了很多次,但没有一个解决方案适合我.

web.xml中

<web-app id="WebApp_ID" version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

  <display-name>Spring Web MVC Application</display-name>

  <servlet>
    <servlet-name>dispatcher</servlet-name>
        <servlet-class>
                  org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.htm</url-pattern>
  </servlet-mapping>

</web-app>
Run Code Online (Sandbox Code Playgroud)

调度员servlet.xml中

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
     http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.0.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
        <property name="prefix">
            <value>/WEB-INF/pages/</value>
        </property>
        <property name="suffix">
            <value>.jsp</value>
        </property>
    </bean>
 <context:component-scan base-package="com.smiechmateusz.controller" />
 <context:annotation-config />

    <mvc:annotation-driven />

</beans>
Run Code Online (Sandbox Code Playgroud)

HelloWorldController.java

package com.smiechmateusz.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import …
Run Code Online (Sandbox Code Playgroud)

java spring json

50
推荐指数
7
解决办法
15万
查看次数

没有为响应类型找到合适的HttpMessageConverter

使用spring,使用以下代码:

List<HttpMessageConverter<?>> messageConverters = restTemplate.getMessageConverters();
for(HttpMessageConverter httpMessageConverter : messageConverters){
  System.out.println(httpMessageConverter);
}
ResponseEntity<ProductList> productList = restTemplate.getForEntity(productDataUrl,ProductList.class);
Run Code Online (Sandbox Code Playgroud)

我明白了

org.springframework.http.converter.ByteArrayHttpMessageConverter@34649ee4
org.springframework.http.converter.StringHttpMessageConverter@39fba59b
org.springframework.http.converter.ResourceHttpMessageConverter@383580da
org.springframework.http.converter.xml.SourceHttpMessageConverter@409e850a
org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter@673074aa
org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter@1e3b79d3
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter@52bb1b26

org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [class com.mycopmany.ProductList] and content type [text/html;charset=UTF-8]
Run Code Online (Sandbox Code Playgroud)

pojo的片段:

@XmlRootElement(name="TheProductList")
public class ProductList {

@XmlElement(required = true, name = "date")
private LocalDate importDate;
Run Code Online (Sandbox Code Playgroud)

java xml spring jaxb

39
推荐指数
5
解决办法
12万
查看次数

406 Spring MVC Json,根据请求"接受"标题是不可接受的

在我的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>
Run Code Online (Sandbox Code Playgroud)

应用-config.xml文件:

<context:component-scan base-package="com.test" />
<mvc:annotation-driven />
<!-- <mvc:default-servlet-handler /> -->
<mvc:resources mapping="/resources/**" location="/resources/" />
Run Code Online (Sandbox Code Playgroud)

JSP页面:

 <form:form method="POST" action="/QuickBooks-UX/syncAccounts">
        <input type="submit" value="Sync Account"/>
 </form:form>
Run Code Online (Sandbox Code Playgroud)

控制器:

@Controller
@RequestMapping("/")
public class QuickBooksController {
    @RequestMapping(value = "/quickBooks", method = RequestMethod.GET)
    public String qucikBooks(ModelMap …
Run Code Online (Sandbox Code Playgroud)

spring json spring-mvc

14
推荐指数
2
解决办法
5万
查看次数

Spring mvc throw org.springframework.web.HttpMediaTypeNotAcceptableException:找不到可接受的表示

我正在使用springMVC,并且在尝试进行更新时遇到异常.

10:10:49,847 DEBUG LogicalConnectionImpl:250 - Released JDBC connection
10:10:49,859 DEBUG FixedContentNegotiationStrategy:48 - Requested media types is text/html (based on     default MediaType)
10:10:49,929 DEBUG ExceptionHandlerExceptionResolver:132 - Resolving exception from handler [public   com.model.JobQueue com.controller.TestResultController.updateJob(java.lang.String,java.lang.String,java.lang.String)]: org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
10:10:49,937 DEBUG ResponseStatusExceptionResolver:132 - Resolving exception from handler [public com.model.JobQueue com.controller.TestResultController.updateJob(java.lang.String,java.lang.String,java.lang.String)]: org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
10:10:49,938 DEBUG DefaultHandlerExceptionResolver:132 - Resolving exception from handler [public com.model.JobQueue com.controller.TestResultController.updateJob(java.lang.String,java.lang.String,java.lang.String)]: org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
10:10:49,940 DEBUG DispatcherServlet:999 - Null ModelAndView returned to …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc

8
推荐指数
1
解决办法
2万
查看次数

Spring ResponseEntity&lt;JSONObject&gt; HttpMediaTypeNotAcceptableException

我尝试在发送 GET 请求时返回 JSONObject。

方法

  @RequestMapping(value = "/{businessId}/{orderId}/{reportId}", method = RequestMethod.GET,
    produces = MediaType.APPLICATION_JSON_VALUE)
  @ResponseBody
  public ResponseEntity<JSONObject> getReport(@PathVariable("businessId") String businessId,
                                               @PathVariable("orderId") String orderId,
                                               @PathVariable("reportId") Long reportId) throws JSONException {
    return new ResponseEntity<JSONObject>(reportService.getReportJSON(), HttpStatus.OK);
  }
Run Code Online (Sandbox Code Playgroud)

我从文件中获取 json。这是一个单一的 json 对象。在一行。我像这样将它解析为 JSONObject

  fs = FileSystem.get(uri, conf);
  BufferedReader reader = null;
  reader = new BufferedReader(new InputStreamReader(fs.open(path)));
  line = reader.readLine();
  while (line != null) {
    jsonObjectList = new JSONObject(line);
    line = reader.readLine();
  }
  return jsonObjectList;
Run Code Online (Sandbox Code Playgroud)

这就是我的文件的样子。

{"reportId":"1","description":"????????????????????????","orderId":"357","businessId":"??????????1","tables":[{"name":"???????","fields":[{"name":"0-17","type":"number"},{"name":"18-24","type":"number"},{"name":"25-34","type":"number"},{"name":"35-44","type":"number"},{"name":"45-54","type":"number"},{"name":"45-54","type":"number"},{"name":"45-54","type":"number"}],"data":[2571,5287,4587,7705,3675,3743,7423]},{"name":"???????","fields":[{"name":"0-17","type":"number"},{"name":"18-24","type":"number"},{"name":"25-34","type":"number"},{"name":"35-44","type":"number"},{"name":"45-54","type":"number"},{"name":"45-54","type":"number"},{"name":"45-54","type":"number"}],"data":[7552,3107,6477,4967,9106,7859,9060]},{"name":"???????????????","fields":[{"name":"0-17","type":"number"},{"name":"18-24","type":"number"},{"name":"25-34","type":"number"},{"name":"35-44","type":"number"},{"name":"45-54","type":"number"},{"name":"45-54","type":"number"},{"name":"45-54","type":"number"}],"data":[7552,3107,6477,4967,9106,7859,9060]}]}
Run Code Online (Sandbox Code Playgroud)

我使用邮递员来检查我的方法。这是我得到的错误

{
    "timestamp": 1504020107350,
    "status": 406,
    "error": "Not …
Run Code Online (Sandbox Code Playgroud)

spring json

5
推荐指数
1
解决办法
1万
查看次数

使用Jackson 2.2的Spring MVC:"HttpMediaTypeNotAcceptableException:找不到可接受的表示"

所以我很难在json中编写我的bean ...首先我尝试使用codehaus'jackson 1.9.13和Spring MVC 3.1.1.我遇到了一些问题,直到我设法达到"直接自我引用"异常.看着这个我发现我需要更快的xml的杰克逊2.然后我发现(这里)我需要Spring 3.1.2因为之前的版本不支持Jackson 2.

所以,毕竟这......我仍然得到同样的例外.我的maven依赖确实包括Spring MVC 3.1.2发行版以及Jackson的2个jar(它们都在我的构建路径中)

<!-- Jackson JSON -->
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.2.2</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.2.2</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.2.2</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

这是我的控制器方法试图发送一个bean:

@RequestMapping(value = "/WS/{id}")
public @ResponseBody Resource displayWS(@PathVariable final int id) {
    return this.service.findById(id);
}
Run Code Online (Sandbox Code Playgroud)

这是我在通话后在浏览器中收到的内容:

HTTP Status 406
The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers ().
Run Code Online (Sandbox Code Playgroud)

这是服务器日志(JBoss 7.1.1):

12:10:59,691 TRACE [org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod] (http-localhost-127.0.0.1-8080-1) Error …
Run Code Online (Sandbox Code Playgroud)

json web-services spring-mvc media-type jackson

3
推荐指数
1
解决办法
2万
查看次数