我正试图将Hystrix javanica集成到我现有的java EJB web应用程序中,在运行它时面临两个问题。
>
当我尝试调用以下服务时,它总是从回退方法返回响应,我看到回退方法中的Throwable对象有com.netflix.hystrix.exception.HystrixTimeoutExc0019异常。
每次触发此服务时,都会多次调用HystrixComad和回退方法约50次。
有人能给我一些建议吗?我是否缺少任何配置?
我包括以下库在我的项目
我已经设置我的方面文件如下:
<aspectj>
<weaver options="-verbose -showWeaveInfo"></weaver>
<aspects>
<aspect name="com.netflix.hystrix.contrib.javanica.aop.aspectj.HystrixCommandAspect"/>
</aspects>
</aspectj>
这是我在META-INF/config.properties中的config.properties文件
hystrix.command.default.execution.timeout.enabled=false
这是我的rest服务文件
@Path("/hystrix")
public class HystrixService {
@GET
@Path("clusterName")
@Produces({ MediaType.APPLICATION_JSON })
public Response getClusterName(@QueryParam("id") int id) {
ClusterCmdBean clusterCmdBean = new ClusterCmdBean();
String result = clusterCmdBean.getClusterNameForId(id);
return Response.ok(result).build();
}
}
这是我的bean类
public class ClusterCmdBean {
@HystrixCommand(groupKey = "ClusterCmdBeanGroup", commandKey = "getClusterNameForId", fallbackMethod = "defaultClusterName")
public String getClusterNameForId(int id) {
if (id > 0) {
return "cluster"+id;
} else {
throw new RuntimeException("command failed");
}
}
public String defaultClusterName(int id, Throwable e) {
return "No cluster - returned from fallback:" + e.getMessage();
}
}
谢谢你的帮助。
如果要确保设置的是特性,可以在回路注释本身中显式设置:
@HystrixCommand(commandProperties = {
@HystrixProperty(name = "execution.timeout.enabled", value = "false")
})
不过,我只推荐用于调试目的。
我突然想到的是Javanica使用了AlooJAOP,我以前从未见过它与new MyBean()
一起工作。我总是必须使用@autowmed与Spring或类似的来允许代理。不过,这对我来说很可能只是一件新鲜事。如果您在getClusterNameForId
中设置断点,您可以在堆栈跟踪中看到它是通过反射调用的(应该是AFAIK)吗?
注意:您可以删除commandKey
,因为这将默认为方法名称。就我个人而言,我也会删除groupKey
,并让它默认为类名。
问题内容: 我正在使用Spring的JdbcTemplate和StoredProcedure类。我无法让存储过程类为我工作。 我在oracle数据库上有一个存储过程。它的签名是 哪里 我创建了以下存储过程类以从oracle过程获取信息 我在我的一个DAO类中的一种方法中调用此方法 但是,地图的大小始终为0,因此没有任何结果。我知道数据库中有符合我输入条件的行。我也有用于与oracle存储的proc
问题内容: 我在自己的类中拥有所有异步调用,因此我不想将aync’ly设置为全局变量。为此,我想从我的asunc postProcess方法返回对象,例如字符串。 能做到吗? 下面是我类的一般结构,例如,我想从onPostExecute()返回一个字符串。我看到在其他地方提到了委托,但这似乎很混乱,确定有办法为类或方法提供返回类型吗? 问题答案: 像下面这样 和听众课 你可以这样打电话
本文向大家介绍ionic3双击返回退出应用的方法,包括了ionic3双击返回退出应用的方法的使用技巧和注意事项,需要的朋友参考一下 ionic3 做双击退出应用的时候按照网上大神的来,从中遇到了一些问题,用this.app.getRootNav().push(MyPage);跳转的页面无法返回,this.app.getActiveNav().pop();这个方法在新的版本中已近被移除了,最后使用另
我尝试使用firebase的isNewUser方法,但它总是返回false。据我所知,它只适用于通过Firebase控制台创建的帐户,这正是我的情况。只要用户点击“连接”并且他的信息正确,该函数就会被调用。 谢谢你的帮助!
我已经配置了一个自定义过滤器,它为除登录之外的每个URL授予spring权限: 和一个spring配置,该配置使用该权限保护所有请求(但不包括登录): 但是,除了登录之外,每个请求都会得到HTTP 403禁止。 我已经调试并确保过滤器中的代码确实被触发。 有什么问题吗? 编辑-当将Spring Security日志放入调试时,我得到以下堆栈跟踪: