HSF 常见问题及解决方案

2016-11-29

HSFServiceAddressNotFoundException

服务找不到

Caused by: com.taobao.hsf.exception.HSFServiceAddressNotFoundException: HSFServiceAddressNotFoundException-
    at com.taobao.hsf.remoting.service.RPCProtocolTemplateComponent.invoke0(RPCProtocolTemplateComponent.java:449)
    at com.taobao.hsf.remoting.service.RPCProtocolTemplateComponent.invokeWithMethodObject(RPCProtocolTemplateComponent.java:207)
    at com.taobao.hsf.process.component.ProcessComponent$HSFServiceProxy.trueInvoke(ProcessComponent.java:310)
    at com.taobao.hsf.process.component.ProcessComponent$HSFServiceProxy.invoke(ProcessComponent.java:295)
    ... 33 common frames omitted

一般报错出现 Caused by: com.taobao.hsf.exception.HSFServiceAddressNotFoundException: HSFServiceAddressNotFoundException- 这个基本是依赖的服务找不到(服务挂了/服务重启/网络抖动)。

解决方案:

  • 在Config ops中查看是否存在此服务发布者
  • telent [pandora server ip] [port] 命令查看是否存在此服务
  • 重启服务

[ConfError] read globalConfig is Empty !

配置读取不到,一般是xml配置中的placeholder没有被替换

Caused by: com.taobao.tddl.jdbc.atom.exception.AtomInitialException: [ConfError] read globalConfig is Empty !
    at com.taobao.tddl.jdbc.atom.TAtomDsConfHandle.init(TAtomDsConfHandle.java:120)
    at com.taobao.tddl.jdbc.atom.TAtomDataSource.init(TAtomDataSource.java:40)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1581)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1522)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)
    ... 105 common frames omitted

排查方法:
查看target/calsses目录下的xml源文件,以及target/{project_name}目录下的datasources.xml配置文件中的placeholder是否被替换,如遇未被替换则尝试下面的解决方案。
解决方案:

  • 执行maven命令 autoconfig:autoconfig
  • 在执行autoconfig之前打包Command Line: package autoconfig:autoconfig -X

Comments
Write a Comment