我想弄清楚是否可以将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) 我正在将项目迁移到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) 我正在尝试将一个项目从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) 我正在构建一个反应应用程序,它使用气氛库来监听SpringBoot websocket,当客户端尝试连接到服务器时,它会在控制台中抛出一个错误,并显示Some cookies are misusing the recommended \xe2\x80\x9csameSite\xe2\x80\x9c attribute。我向对象添加了一些属性request来按照建议修复问题( SameSite cookies)。但我仍然遇到同样的错误。
ReactJS代码:
\nimport 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)我正在使用 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)我正在尝试在 YAML 中为 DynamoDB 添加事件流,DynamoDB 表是一个根据其部署到的环境而变化的变量,我用来Fn::GetAtt确定TABLE_NAME,但它给了我一个例外。
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
java ×4
maven ×2
atmosphere ×1
docker ×1
json ×1
powermock ×1
powermockito ×1
python ×1
reactjs ×1
rest ×1
serverless ×1
spring ×1
spring-mvc ×1
websocket ×1
yaml ×1