小编Sai*_*deh的帖子

将多个参数传递给rest API - Spring

我想弄清楚是否可以将JSON对象传递给其他API,或者将多个参数传递给该API?以及如何在Spring中读取这些参数?让我们假设网址如下所示:

实施例1, http://localhost:8080/api/v1/mno/objectKey?id=1&name=saif

传递JSON对象是否有效,如下面的url?

例2 http://localhost:8080/api/v1/mno/objectKey/{"id":1, "name":"Saif"}

问题:

1)是否可以像往常一样将JSON对象传递给url?

2)我们如何传递和解析Ex.1中的参数?

我试着写一些方法来实现我的目标,但找不到合适的解决方案?

我试图将JSON对象作为@RequestParam传递

http://localhost:8080/api/v1/mno/objectKey?id=1 出现意外错误 (type=Unsupported Media Type, status=415). Content type 'null' not supported

http://localhost:8080/api/v1/mno/objectKey/id=1 出现意外错误 (type=Not Found, status=404). No message available

http://localhost:8080/api/v1/mno/objectKey/%7B%22id%22:1%7D 出现意外错误 (type=Not Found, status=404). No message available

@RequestMapping(value="mno/{objectKey}",
                method = RequestMethod.GET, 
                consumes="application/json")
    public List<Book> getBook4(@RequestParam ObjectKey objectKey) {
        ...
    }
Run Code Online (Sandbox Code Playgroud)

我试图将JSON对象作为@PathVariable传递

@RequestMapping(value="ghi/{objectKey}",method = RequestMethod.GET)
    public List<Book> getBook2(@PathVariable ObjectKey objectKey) {
        ...         
    }
Run Code Online (Sandbox Code Playgroud)

我创建了这个对象来保存id参数和其他参数,如名称等....

class ObjectKey{
        long id;
        public long getId() {
            return id;
        }
        public void setId(long id) …
Run Code Online (Sandbox Code Playgroud)

java rest spring json spring-mvc

19
推荐指数
2
解决办法
15万
查看次数

MockClassLoader无法访问jdk / internal / reflect超类jdk.internal.reflect.MagicAccessorImpl

我正在将项目迁移到Java9中,在切换到新的Java版本后,测试开始失败,看来PowerMock正在尝试访问一些它无法访问的类。

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.973 sec <<< FAILURE! - in com.Test
initializationError(com.Test)  Time elapsed: 0.007 sec  <<< ERROR!
org.objenesis.ObjenesisException: java.lang.reflect.InvocationTargetException
Caused by: java.lang.reflect.InvocationTargetException
Caused by: java.lang.IllegalAccessError: class jdk.internal.reflect.ConstructorAccessorImpl loaded by org/powermock/core/classloader/MockClassLoader cannot access jdk/internal/reflect superclass jdk.internal.reflect.MagicAccessorImpl
Run Code Online (Sandbox Code Playgroud)

Maven-surefire-插件

<plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.19.1</version>
    <configuration>
        <includes>
            <include>**/*Test.java</include>
            <include>**/*Test.groovy</include>
            <include>**/*Spec.*</include>
        </includes>
        <forkMode>always</forkMode>
        <argLine>--add-modules java.xml.bind</argLine>
        <argLine>--add-modules java.activation</argLine>
        <argLine>--add-opens=java.base/java.lang=ALL-UNNAMED --illegal-access=warn</argLine>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

powermock依赖

<dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-module-junit4</artifactId>
        <version>1.7.4</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-api-mockito</artifactId>
        <version>1.7.4</version>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-all</artifactId>
            </exclusion> …
Run Code Online (Sandbox Code Playgroud)

java powermock maven powermockito

7
推荐指数
4
解决办法
6232
查看次数

NoClassDefFoundError:无法初始化类 com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl

我正在尝试将一个项目从Java8迁移到Java9,但我遇到了下面的运行时异常,我尝试了 Stack-overflow 社区和其他博客建议的所有可能的解决方案,但没有解决问题,我可能在pom文件,我不知道或缺少需要传递的参数中的某些内容maven-compiler-plugin

例外

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'validator' defined in com.test-java9.content.config.ValidationConfiguration: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1628)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
    at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:208)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066)
    at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:835)
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:741)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:467)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1173)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1067)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
    at …
Run Code Online (Sandbox Code Playgroud)

java maven

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

有些 cookie 滥用了推荐的“sameSite“属性

我正在构建一个反应应用程序,它使用气氛库来监听SpringBoot websocket,当客户端尝试连接到服务器时,它会在控制台中抛出一个错误,并显示Some cookies are misusing the recommended \xe2\x80\x9csameSite\xe2\x80\x9c attribute。我向对象添加了一些属性request来按照建议修复问题( SameSite cookies)。但我仍然遇到同样的错误。

\n

ReactJS代码:

\n

\r\n
\r\n
import React from \'react\';\nimport * as atmosphere from \'atmosphere.js\';\n\n//import $ from \'jquery\';\nvar transport = \'websocket\';\n//var req = new atmosphere.AtmosphereRequest();\n\n// We are now ready to cut the request\nvar request = {\n    url:\'http://localhost:8080/stream\',\n    contentType: "application/json",\n    trackMessageLength: true,\n    shared: true,\n    enableXDR: true,\n    headers: { \'Access-Control-Allow-Origin\': \'*\',\n                \'sameSite\': \' None; Secure\'\n    },\n    //sameSite: \'None; Secure\',\n    rewriteURL:true,\n    transport: transport,\n    fallbackTransport: \'long-polling\',\n    onOpen: …
Run Code Online (Sandbox Code Playgroud)

java websocket atmosphere reactjs atmosphere.js

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

无法为 pyjq 造轮子 | 没有这样的文件或目录:'autoreconf':'autoreconf'

我正在使用 docker 部署 lambda 函数aws,lambda 函数正在使用pyjq库,并且需要安装这些库: flex bison libtool make autoconf 也就是说,构建分支时会发生错误。

No such file or directory: 'autoreconf': 'autoreconf'

Could not build wheels for pyjq which use PEP 517 and cannot be installed directly

  /usr/bin/mkdir -p '/tmp/pip-install-6ckq9ir8/pyjq/dependencies/onig_install/include'

   /usr/bin/install -c -m 644 oniguruma.h oniggnu.h onigposix.h '/tmp/pip-install-6ckq9ir8/pyjq/dependencies/onig_install/include'

  make[2]: Leaving directory `/tmp/pip-install-6ckq9ir8/pyjq/dependencies/onig-6.9.0/src'

  make[1]: Leaving directory `/tmp/pip-install-6ckq9ir8/pyjq/dependencies/onig-6.9.0/src'

  Making install in test

  make[1]: Entering directory `/tmp/pip-install-6ckq9ir8/pyjq/dependencies/onig-6.9.0/test'

  make[2]: Entering directory `/tmp/pip-install-6ckq9ir8/pyjq/dependencies/onig-6.9.0/test'

  make[2]: Nothing to be done for `install-exec-am'.

  make[2]: Nothing to be …
Run Code Online (Sandbox Code Playgroud)

python docker

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

在 YAML 中使用 Fn::GetAtt 时,流集合条目之间缺少逗号

我正在尝试在 YAML 中为 DynamoDB 添加事件流,DynamoDB 表是一个根据其部署到的环境而变化的变量,我用来Fn::GetAtt确定TABLE_NAME,但它给了我一个例外。

  1. 语法正确吗?
  2. 除了 YAML 之外,还有其他方法可以配置流吗Fn::GetAtt

例外:

missed comma between flow collection entries in "erverless.yml" at line 60, 
column28:Fn::GetAtt: [ ${self:custom.TABLE_NAME ...
Run Code Online (Sandbox Code Playgroud)

代码:

  custom:
      TABLE_NAME : mix of account + env + name
  events:
  - stream:
      type: dynamodb
      arn:
        Fn::GetAtt: [ ${self:custom.TABLE_NAME}, StreamArn ]
Run Code Online (Sandbox Code Playgroud)

yaml serverless-framework amazon-dynamodb-streams serverless

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