我正在使用JacksonPolymorphicDeserialization,这是我的代码,它反序列化为基于'type'属性的正确类:
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property = "type",
defaultImpl = Event.class,
visible = true)
@JsonSubTypes({
@Type(value = SpecialEvent1.class, name = "SPECIAL_EVENT_1"),
@Type(value = SpecialEvent2.class, name = "SPECIAL_EVENT_2"),
})
public abstract class AbstractEvent {
private String type;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
Run Code Online (Sandbox Code Playgroud)
它工作得很好,我的json根据'type'值变成了预期的类.
但是,我正在考虑将'type'属性从String移动到Enum,这是我的新代码:
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property = "type",
defaultImpl = Event.class,
visible = true)
@JsonSubTypes({
@Type(value = SpecialEvent1.class, …Run Code Online (Sandbox Code Playgroud) 我在Google App Engine上使用了python-request,但它没有像HTTPS那样正常工作.我们来看一个例子:
import requests
requests.get('https://www.digitalocean.com')
Run Code Online (Sandbox Code Playgroud)
如果我在终端中执行它,该行将完美运行.响应是200 OK(没有重定向).
但是,如果我在GAE上执行它,则会引发TooManyRedirects错误.试图找出我用allow_redirects = False执行的问题是什么,我可以看到响应是重定向(301),它指向同一个url!('location'标头值为' https://www.digitalocean.com ').这显然(当allow_redirect = True时)反复发生,直到引发TooManyRedirects错误.
因此,似乎python请求不适用于HTTPS的GAE(我已经使用多个URL进行了测试).然而HTTP工作得很好.
关于发生了什么的任何想法?
提前致谢.
当我使用maven编译但是在eclipse中工作时,我收到了编译错误.两者都使用相同的JDK:
java -version
java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01, mixed mode)
mvn -version
Apache Maven 3.0.4
Maven home: /usr/share/maven
Java version: 1.6.0_35, vendor: Sun Microsystems Inc.
Java home: /usr/lib/jvm/jdk1.6.0_35/jre
Default locale: es_ES, platform encoding: UTF-8
OS name: "linux", version: "3.2.0-29-generic", arch: "amd64", family: "unix"
Run Code Online (Sandbox Code Playgroud)
这是错误:
[ERROR] /blablabla.../myClass.java: [78,107] inconvertible types
[ERROR] found : java.util.Collection<java.lang.Object>
[ERROR] required: java.util.Collection<? extends org.springframework.integration.store.MessageGroup>
[ERROR] -> [Help 1]
Run Code Online (Sandbox Code Playgroud)
这是代码(在eclipse中没有编译错误):
Collection<? extends MessageGroup> collection = (Collection<? …Run Code Online (Sandbox Code Playgroud) 我在一组三个tomcat6服务器前面有一个Apache服务器(服务器版本:Apache/2.2.22(Ubuntu)).Apache使用mod_proxy和AJP连接器设置为负载均衡器:
<VirtualHost *:80>
ProxyRequests off
<Proxy balancer://mycluster>
BalancerMember ajp://localhost:8009 keepalive=On retry=1 timeout=15 ping=1
BalancerMember ajp://10.0.3.152:8009 keepalive=On retry=1 timeout=15 ping=1
BalancerMember ajp://10.0.3.153:8009 keepalive=On retry=1 timeout=1 ping=15
Order Deny,Allow
Deny from none
Allow from all
ProxySet lbmethod=byrequests
</Proxy>
<Location /balancer-manager>
SetHandler balancer-manager
Order deny,allow
Allow from all
</Location>
ProxyPass /balancer-manager !
ProxyPass / balancer://mycluster/
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
Tomcat使用以下JAVA_OPTS运行:
-Xms2048m -Xmx2048m -XX:NewSize=256m
-XX:MaxNewSize=356m -XX:PermSize=256m -XX:MaxPermSize=356m
Run Code Online (Sandbox Code Playgroud)
系统运行正常,但过了一段时间我从Tomcat收到这些错误:
org.apache.jk.common.ChannelSocket processConnection
WARNING: processCallbacks status 2
Run Code Online (Sandbox Code Playgroud)
而这个来自Apache:
[error] ajp_read_header: ajp_ilink_receive failed
[error] (70007)The timeout specified has expired: proxy: read …Run Code Online (Sandbox Code Playgroud) 我有一个spring集成http入站网关.我想在不同的使用情况下返回特定的http状态代码.有没有办法在响应中指定httpStatus ???
我尝试使用excepion类型路由器,其中每个异常都是特定的http状态代码,但我不知道如何在响应中设置状态代码,我在文档中找不到任何关于它的帮助.
谢谢!