小编Xtr*_*oce的帖子

Spring REST:HttpMediaTypeNotSupportedException:内容类型'application/json; charset = UTF-8'

由于杰克逊试图反序列化我的POJO,我收到了上述错误.

我调试了代码,它在Jackson的ObjectMapper中返回false:

public boolean canRead(Type type, Class<?> contextClass, MediaType mediaType) {
    JavaType javaType = getJavaType(type, contextClass);
    return (this.objectMapper.canDeserialize(javaType) && canRead(mediaType));
}
Run Code Online (Sandbox Code Playgroud)

this.objectMapper.canDeserialize(javaType)返回false,导致错误

我的控制器如下:

@Controller
public class CancelController {
    @Autowired
    private CancelService cancelService;

    @RequestMapping( value="/thing/cancel", method=RequestMethod.POST, consumes="application/json" )
    public @ResponseBody CancelThingResponseDTO cancelThing(@RequestBody CancelRequestDTO cancelThingRequest) {
        return cancelService.cancelThing(cancelThingRequest);
    }
Run Code Online (Sandbox Code Playgroud)

我的CancelRequestDTO实现了Serializable:

public class CancelRequestDTO implements Serializable{
  /**
   * Default serialization ID
   */
  private static final long serialVersionUID = 1L;
  /**
   * Reason code associated with the request
   */
  private final String reasonCode;
  /** …
Run Code Online (Sandbox Code Playgroud)

json spring-mvc jackson

17
推荐指数
2
解决办法
4万
查看次数

python迭代器通过树与子列表

我没有完全掌握python迭代器,我得到了一个带有子列表的对象,我想迭代这个结构.我想获得与printall函数相同的行为,但使用迭代器.

    class t:
            def __init__(self, i):
                    self.l = []
                    self.a = 0
                    for ii in range(i):
                            self.a = ii
                            self.l.append(t(i-1))

            def __iter__(self):
                    return self

            def next(self):
                    for i in self.l:
                            yield i.__iter__()
                    yield self

            def printall(self):
                    for i in self.l:
                            i.printall()
                    print self.a
Run Code Online (Sandbox Code Playgroud)

希望有足够的信息,谢谢

编辑:

我只是希望能够遍历树的所有叶子并对对象做一些事情,即当我有一个实例时

    bla = t(3) 
Run Code Online (Sandbox Code Playgroud)

我希望能够通过每个节点

    for x in bla:
            print x.a
Run Code Online (Sandbox Code Playgroud)

例如.我想能够与每个x,我只需要访问每个孩子一次

python iterator

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

Spring启动应用程序作为依赖

我的问题是我有一个多模块maven构建,其中一个部分由swagger作为spring引导应用程序生成.第二个模块应该扩展生成的代码并最终启动.当我使用maven编译时,第二个项目在生成的代码中找不到类.我检查了jar,并且在构建jar时类文件最终在BOOT-INF目录中.我怀疑这是问题所在.编译代码的最佳解决方案是什么?

父母pom

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
    <groupId>com.xxx</groupId>
    <artifactId>applications</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
</parent>

<name>project1-connector</name>
<artifactId>project1-connector</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>

<scm>
    <developerConnection>scm:git:ssh://git@xxx.com:7999/bla/project1-java-repo.git</developerConnection>
</scm>

<properties>
    <majorVersion>1</majorVersion>
    <minorVersion>0</minorVersion>
</properties>

<build>
    <plugins>
        <plugin>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-codegen-maven-plugin</artifactId>
            <version>2.3.1</version>
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <inputSpec>${project.basedir}/src/main/resources/api.yaml</inputSpec>
                        <language>spring</language>
                        <configurationFile>${project.basedir}/src/main/resources/apiConfig.json</configurationFile>
                        <output>${project.basedir}/project1-api</output>
                        <configOptions>
                            <sourceFolder>src/main/java</sourceFolder>
                        </configOptions>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

<modules>
    <module>project1-api</module>
    <module>project1-backend</module>
</modules>
Run Code Online (Sandbox Code Playgroud)

http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.xxx</groupId>
    <artifactId>project1-api</artifactId>
    <packaging>jar</packaging>
    <name>project1-api</name>
    <version>1.0.1</version>
    <properties>
        <java.version>1.8</java.version>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <maven.compiler.target>${java.version}</maven.compiler.target>
        <springfox-version>2.7.0</springfox-version>
    </properties>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version> …
Run Code Online (Sandbox Code Playgroud)

java spring maven spring-boot

9
推荐指数
1
解决办法
4165
查看次数

在html标签上删除Jsoup属性

我有问题,我想过滤某些可能包含HTML的文本.我使用jsoup白名单并清理工作非常好的标签.

我只有一些标签可以包含属性的问题,主要是样式或类,但也可能有不同的属性.(名称,目标,等等)清洁时没有问题,因为它们被很好地剥离了,但是当将某些标签列入白名单时会因为属性而被阻止.基本的白名单似乎不包括风格或类属性加上我不能保证我遇到的其他内容.

由于我想允许相当多的标签,但在清理过程中删除大部分标签,我不想为我允许的所有标签添加所有属性.最简单的方法是从所有标签中删除所有属性,因为我对它们不感兴趣,然后检查带有普通标签的剥离文本是否有效.

是否有一个删除所有属性或一些简单循环的函数,另一个选项是告诉白名单忽略所有属性并简单地在标签上列入白名单.

java jsoup

7
推荐指数
1
解决办法
8288
查看次数

如何在 Python 线程池中使用初始化器

我正在尝试使用 PyFFTW 进行线程卷积,以便同时计算大量的 2D 卷积。(不需要单独的进程,因为 GIL 是为 Numpy 操作而释放的)。现在这是这样做的规范模型: http ://code.activestate.com/recipes/577187-python-thread-pool/

(Py)FFTW 之所以如此快,是因为它重用了计划。必须为每个线程单独设置这些以避免访问冲突错误,如下所示:

class Worker(Thread):
    """Thread executing tasks from a given tasks queue"""
    def __init__(self, tasks):
        Thread.__init__(self)
        self.tasks = tasks
        self.daemon = True

        # Make separate fftw plans for each thread.
        flag_for_fftw='patient'      
        self.inputa = np.zeros(someshape, dtype='float32')
        self.outputa = np.zeros(someshape_semi, dtype='complex64')

        # create a forward plan.
        self.fft = fftw3.Plan(self.inputa,self.outputa, direction='forward', flags=[flag_for_fftw],nthreads=1)         

        # Initialize the arrays for the inverse fft.
        self.inputb = np.zeros(someshape_semi, dtype='complex64')
        self.outputb = np.zeros(someshape, dtype='float32')

        # Create the backward …
Run Code Online (Sandbox Code Playgroud)

python multithreading convolution fftw

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

Java中方法参数的线程安全性

我想知道在处理Java中的成员参数时,线程安全是否已经起作用.

假设您有一个API方法

boolean moreThanTen(long value) {
    if(value > 10) return true;
    else return false;
}
Run Code Online (Sandbox Code Playgroud)

这种方法是线程安全的吗?

我想它会因为每个线程都有自己的局部变量堆栈,而基元都存储在这个本地堆栈中.

唯一让我不确定的是,a long将是两个单独的读取,因此通常不是线程安全的.

我的问题是:我可以确定方法的参数是否以原子方式复制?因此,当使用原语作为参数(偶数float/ long)时,我可以确定在将其复制到局部变量时,线程安全性不会成为问题吗?

谢谢.

java concurrency multithreading parameter-passing

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

移调时的numpy和octave不同

首先我知道在这里有一个相同的问题答案:Matlab中的FFT和numpy/scipy给出不同的结果, 但那里给出的答案对我做的测试不起作用:

当我从numpy.fft做一个fft我得到以下结果:

In [30]: numpy.fft.fft(numpy.array([1+0.5j, 3+0j, 2+0j, 8+3j]))
Out[30]: array([ 14.+3.5j,  -4.+5.5j,  -8.-2.5j,   2.-4.5j])
Run Code Online (Sandbox Code Playgroud)

这与我的八度音程的输出完全相同)

octave:39> fft([1+0.5j,3+0j,2+0j,8+3j])
ans =
Columns 1 through 3:
14.0000 +  3.5000i   -4.0000 +  5.5000i   -8.0000 -  2.5000i
Column 4:
2.0000 -  4.5000i
Run Code Online (Sandbox Code Playgroud)

但如果我将列表转换为octave和python我得到:

In [9]: numpy.fft.fft(numpy.array([1+0.5j, 3+0j, 2+0j, 8+3j]).transpose())
Out[9]: array([ 14.+3.5j,  -4.+5.5j,  -8.-2.5j,   2.-4.5j])
Run Code Online (Sandbox Code Playgroud)

和八度:

octave:40> fft([1+0.5j,3+0j,2+0j,8+3j]')
ans =

14.0000 -  3.5000i
2.0000 +  4.5000i
-8.0000 +  2.5000i
-4.0000 -  5.5000i
Run Code Online (Sandbox Code Playgroud)

我也尝试在python中重塑,但这会导致:

In [33]: numpy.fft.fft(numpy.reshape(numpy.array([1+0.5j,3+0j,2+0j,8+3j]), (4,1)))
Out[33]: 
array([[ 1.+0.5j],
   [ 3.+0.j ], …
Run Code Online (Sandbox Code Playgroud)

numpy fft octave

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

eclipse和opengl-es-2.0,info.reqGlEsVersion为零

当我尝试使用adt和od检查时在eclipse中运行程序

if(info.reqGlEsVersion <  0x20000)
Run Code Online (Sandbox Code Playgroud)

它总是失败.我设置了一个断点并查看了info对象和reqGlEsVersionis0

我使用多个虚拟设备和api进行了测试,其中一个版本为2.3.3,另一个版本为3.0.据我所知,gl es 2.0的最低要求是android 2.2所以它应该运行正常.除了chai api我使用了设备快照选项和标准配置

我错过了一些配置步骤或什么?

顺便说一下eclipse版本是2.5.1

eclipse android opengl-es-2.0

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

使用向后兼容性编译的java类使用JavaVM优化更新的版本吗?

我想知道,当编译为java 1.4编写的java源代码时,-source和-target开关设置为1.4时,是否会使用版本中内置的一些/任何优化.我的第一个目的当然不是说,因为在编译之后你会获得一组指令,这些指令的目标是最初的1.4 VM.然后我认为,由于编译器只是更巧妙地使用指令,因此仍然应该有一些改进.

或者换句话说,大多数优化都位于运行代码或编译类的VM中?

请保存评论1.4毫无希望地过时,问题只是我现在想了两天的事情,搜索互联网并没有为我提供任何合理的答案.

java compiler-construction performance runtime

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