Code Monkey home page Code Monkey logo

fastdfs_client's Issues

无法获取服务端连接资源:找不到可用的tracker

我的配置,Configuration类也写了

fdfs:
  so-timeout: 1501
  connect-timeout: 601
  thumb-image:             #缩略图生成参数
    width: 150
    height: 150
  tracker-list:            #TrackerList参数,支持多个
    - 192.168.103.228:22122
  pool:
    max-total: 150         #从池中借出的对象的最大数目
    max-wait-millis: 100   #获取连接时的最大等待毫秒数100

注入到AccessoryEndpointClient

private FastFileStorageClient fastFileStorageClient;

public AccessoryEndpointClient(@Qualifier("defaultFastFileStorageClient")FastFileStorageClient fastFileStorageClient) {
        this.fastFileStorageClient = fastFileStorageClient;
    }

测试类

@Test
public void asyncUpload() throws Exception {
    MockMultipartFile multipartFile = new MockMultipartFile("file", "test.txt", "text/plain", "Test File".getBytes());

    GenerateAccessoryDTO dto = new GenerateAccessoryDTO();
    dto.setAppId("1");
    dto.setDataId("1");
    dto.setServiceId("1");
    dto.setsCmpy("1");
    dto.setsDept("1");
    dto.setsDeptPath("1");
    dto.setsOdept("1");

    Accessory accessory = new Accessory();
    BeanUtils.copyProperties(dto, accessory);
    Accessory generatedAccessory = accessoryRepository.saveAndFlush(accessory);

    String signature = generatedAccessory.getId();

    mockMvc.perform(fileUpload("/api/upload/async")
        .file(multipartFile)
        .param("signature",signature)
        .with(oAuth2TokenMockUtil.oauth2Authentication("login", mockScopes, mockRoles)))
        .andExpect(status().isOk())
        .andDo(print());
}

报错

2018-04-28 11:09:28.070 ERROR 22758 --- [           main] c.g.t.fastdfs.conn.ConnectionManager     : Unable to borrow buffer from pool

com.github.tobato.fastdfs.exception.FdfsUnavailableException: 无法获取服务端连接资源:找不到可用的tracker 
	at com.github.tobato.fastdfs.domain.TrackerLocator.getTrackerAddress(TrackerLocator.java:103)
	at com.github.tobato.fastdfs.conn.TrackerConnectionManager.executeFdfsTrackerCmd(TrackerConnectionManager.java:64)
	at com.github.tobato.fastdfs.service.DefaultTrackerClient.getStoreStorage(DefaultTrackerClient.java:39)
	at com.github.tobato.fastdfs.service.DefaultFastFileStorageClient.uploadFile(DefaultFastFileStorageClient.java:53)
	at com.cplh.dfs.service.AccessoryEndpointClient.asyncUpload(AccessoryEndpointClient.java:81)
	at com.cplh.dfs.web.rest.AccessoryResource.uploadFile(AccessoryResource.java:90)
	at com.cplh.dfs.web.rest.AccessoryResource$$FastClassBySpringCGLIB$$ddd04735.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
	at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:69)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
	at com.ryantenney.metrics.spring.TimedMethodInterceptor.invoke(TimedMethodInterceptor.java:48)
	at com.ryantenney.metrics.spring.TimedMethodInterceptor.invoke(TimedMethodInterceptor.java:34)
	at com.ryantenney.metrics.spring.AbstractMetricMethodInterceptor.invoke(AbstractMetricMethodInterceptor.java:59)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)

大佬帮看下可能是哪里出问题了

生产验证

想了解下您的这个版本经过生产的验证吗?

依赖启动报错

org.springframework.jmx.export.UnableToRegisterMBeanException: Unable to register MBean [FdfsConnectionPool [maxTotal=50, blockWhenExhausted=true, maxWaitMillis=100, lifo=true, fairness=false, testOnCreate=false, testOnBorrow=false, testOnReturn=false, testWhileIdle=true, timeBetweenEvictionRunsMillis=60000, numTestsPerEvictionRun=-1, minEvictableIdleTimeMillis=180000, softMinEvictableIdleTimeMillis=-1, evictionPolicy=org.apache.commons.pool2.impl.DefaultEvictionPolicy@475fb7, closeLock=java.lang.Object@41db6e4b, closed=false, evictionLock=java.lang.Object@5367d46f, evictor=org.apache.commons.pool2.impl.BaseGenericObjectPool$Evictor@6c4eccd2, evictionIterator=null, factoryClassLoader=java.lang.ref.WeakReference@564e9c0b, oname=com.github.tobato.fastdfs.conn:type=FdfsConnectionPoolfdfsPool, creationStackTrace=java.lang.Exception
at org.apache.commons.pool2.impl.BaseGenericObjectPool.(BaseGenericObjectPool.java:143)
at org.apache.commons.pool2.impl.GenericKeyedObjectPool.(GenericKeyedObjectPool.java:105)
at com.github.tobato.fastdfs.conn.FdfsConnectionPool.(FdfsConnectionPool.java:33)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:170)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:117)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:271)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1270)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1127)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:251)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1065)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:584)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:373)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1344)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:513)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:484)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:618)
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:177)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:318)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1344)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:251)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1065)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:506)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:484)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:618)
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:177)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:318)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1344)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:760)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:868)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:388)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:327)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1246)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1234)
at org.daijie.api.ShiroApiStartUp.main(ShiroApiStartUp.java:29)
, borrowedCount=0, returnedCount=0, createdCount=0, destroyedCount=0, destroyedByEvictorCount=0, destroyedByBorrowValidationCount=0, activeTimes=StatsStore [values=[-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], size=100, index=0], idleTimes=StatsStore [values=[-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], size=100, index=0], waitTimes=StatsStore [values=[-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], size=100, index=0], maxBorrowWaitTimeMillis=0, swallowedExceptionListener=null, maxIdlePerKey=8, minIdlePerKey=0, maxTotalPerKey=8, factory=PooledConnectionFactory [], fairness=false, poolMap={}, poolKeyList=[], keyLock=java.util.concurrent.locks.ReentrantReadWriteLock@4c7d19bf[Write locks = 0, Read locks = 0], numTotal=0, evictionKeyIterator=null, evictionKey=null]] with key 'fdfsConnectionPool'; nested exception is javax.management.InstanceAlreadyExistsException: MXBean already registered with name com.github.tobato.fastdfs.conn:type=FdfsConnectionPoolfdfsPool
at org.springframework.jmx.export.MBeanExporter.registerBeanNameOrInstance(MBeanExporter.java:626)
at org.springframework.jmx.export.MBeanExporter.lambda$registerBeans$2(MBeanExporter.java:552)
at java.util.HashMap.forEach(HashMap.java:1280)
at org.springframework.jmx.export.MBeanExporter.registerBeans(MBeanExporter.java:552)
at org.springframework.jmx.export.MBeanExporter.afterSingletonsInstantiated(MBeanExporter.java:435)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:777)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:868)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:388)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:327)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1246)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1234)
at org.daijie.api.ShiroApiStartUp.main(ShiroApiStartUp.java:29)
Caused by: javax.management.InstanceAlreadyExistsException: MXBean already registered with name com.github.tobato.fastdfs.conn:type=FdfsConnectionPoolfdfsPool
at com.sun.jmx.mbeanserver.MXBeanLookup.addReference(MXBeanLookup.java:151)
at com.sun.jmx.mbeanserver.MXBeanSupport.register(MXBeanSupport.java:160)
at com.sun.jmx.mbeanserver.MBeanSupport.preRegister2(MBeanSupport.java:173)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:930)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:900)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:324)
at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522)
at org.springframework.jmx.support.MBeanRegistrationSupport.doRegister(MBeanRegistrationSupport.java:137)
at org.springframework.jmx.export.MBeanExporter.registerBeanInstance(MBeanExporter.java:672)
at org.springframework.jmx.export.MBeanExporter.registerBeanNameOrInstance(MBeanExporter.java:616)
... 14 more

SocketTimeout or recv cmd: 0 is not correct, expect cmd: 100

你好 我使用你的代码配置进行fastdfs上传,随机报错信息如下:

要么 并发冲突:recv cmd: 0 is not correct, expect cmd: 100

要么

....FdfsIOException:客户端连接服务端出现了io异常:socket io exception occured while receive content at
.......
Caused by: java.net.SocketTimeoutException: Read timed out

请问是我的配置问题 还是我的FastDFS问题呢

错误码:22,错误信息:无效的参数

作者,你好!我在使用下载功能时,提示如下错误:
com.github.tobato.fastdfs.exception.FdfsServerException: 错误码:22,错误信息:无效的参数
at com.github.tobato.fastdfs.exception.FdfsServerException.byCode(FdfsServerException.java:54)
at com.github.tobato.fastdfs.proto.ProtoHead.validateResponseHead(ProtoHead.java:119)
at com.github.tobato.fastdfs.proto.AbstractFdfsCommand.receive(AbstractFdfsCommand.java:102)
at com.github.tobato.fastdfs.proto.AbstractFdfsCommand.execute(AbstractFdfsCommand.java:45)
at com.github.tobato.fastdfs.conn.ConnectionManager.execute(ConnectionManager.java:76)
at com.github.tobato.fastdfs.conn.ConnectionManager.executeFdfsCmd(ConnectionManager.java:61)
at com.github.tobato.fastdfs.service.DefaultGenerateStorageClient.downloadFile(DefaultGenerateStorageClient.java:141)
at com.github.tobato.fastdfs.service.DefaultGenerateStorageClient.downloadFile(DefaultGenerateStorageClient.java:130)

上传没有问题。
@Autowired
AppendFileStorageClient storageClient;

@OverRide
public byte[] download(String group, String path) {
DownloadByteArray callback = new DownloadByteArray();
byte[] bytes=storageClient.downloadFile(group,path,callback);
return bytes;
}

断点续传的问题

现在这个客户端是追加的方式,第一片uploadAppenderFile,后面的appendFile。但是如果是多线程的,没有顺序怎么处理呀?可以用类似RandomAccessFile吗?这里面有偏移量的说法吗?

多线程上传图片是 返回图片地址混乱

多线程上传图片是 返回图片地址混乱 时不时发生
code:
...........
@Autowired
private FastFileStorageClient storageClient;
.........

public synchronized String uploadFile(byte[] buffer, String extension) {

	StorePath storePath = storageClient.uploadFile(groupName, new ByteArrayInputStream(buffer), buffer.length, extension);

    return .........
}

现没办法加上了 synchronized

连续 上传10万张图片

7:02:23.481 [main] ERROR c.g.t.f.proto.AbstractFdfsCommand - receive conent error
java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:171)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at java.net.SocketInputStream.read(SocketInputStream.java:127)
at com.github.tobato.fastdfs.proto.ProtoHead.createFromInputStream(ProtoHead.java:94)
at com.github.tobato.fastdfs.proto.AbstractFdfsCommand.receive(AbstractFdfsCommand.java:99)
at com.github.tobato.fastdfs.proto.AbstractFdfsCommand.execute(AbstractFdfsCommand.java:45)
at com.github.tobato.fastdfs.conn.ConnectionManager.execute(ConnectionManager.java:76)
at com.github.tobato.fastdfs.conn.ConnectionManager.executeFdfsCmd(ConnectionManager.java:61)
at com.github.tobato.fastdfs.service.DefaultFastFileStorageClient.uploadFileAndMateData(DefaultFastFileStorageClient.java:131)
at com.github.tobato.fastdfs.service.DefaultFastFileStorageClient.uploadFile(DefaultFastFileStorageClient.java:54)
at tz.lion.ImageImportTest.run(ImageImportTest.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
17:02:23.599 [Thread-5] INFO o.s.w.c.s.GenericWebApplicationContext - Closing org.springframework.web.context.support.GenericWebApplicationContext@57cf54e1: startup date [Tue Aug 22 16:56:00 CST 2017]; root of context hierarchy
17:02:23.612 [Thread-5] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'primaryPersistenceUnit'

错误码:2,错误信息:找不到节点或文件

trackerClient.getStoreStorage("group1")
报以下错误,fastDFS使用的是v5.09

com.github.tobato.fastdfs.exception.FdfsServerException: 错误码:2,错误信息:找不到节点或文件
at com.github.tobato.fastdfs.exception.FdfsServerException.byCode(FdfsServerException.java:54)
at com.github.tobato.fastdfs.proto.ProtoHead.validateResponseHead(ProtoHead.java:119)
at com.github.tobato.fastdfs.proto.AbstractFdfsCommand.receive(AbstractFdfsCommand.java:102)
at com.github.tobato.fastdfs.proto.AbstractFdfsCommand.execute(AbstractFdfsCommand.java:45)
at com.github.tobato.fastdfs.conn.ConnectionManager.execute(ConnectionManager.java:76)
at com.github.tobato.fastdfs.conn.TrackerConnectionManager.executeFdfsTrackerCmd(TrackerConnectionManager.java:76)
at com.github.tobato.fastdfs.service.DefaultTrackerClient.getStoreStorage(DefaultTrackerClient.java:54)
at com.linecorp.games.support.core.config.FastClientTest.test_uploadFile(FastClientTest.java:33)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

报错:BeanCreationException: 有mbeanExporter和endpointMBeanExporter两个bean

Description:

Constructor in org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoConfiguration required a single bean, but 2 were found:
- mbeanExporter: defined by method 'mbeanExporter' in org.springframework.context.annotation.MBeanExportConfiguration
- endpointMBeanExporter: defined by method 'endpointMBeanExporter' in class path resource [org/springframework/boot/actuate/autoconfigure/EndpointMBeanExportAutoConfiguration.class]

Action:

Consider marking one of the beans as @primary, updating the consumer to accept multiple beans, or using @qualifier to identify the bean that should be consumed

非spring-boot项目怎么使用

1.我是非spring-boot项目怎么使用你的client;
2.上传、下载接口是否可以再丰富些,比如上传api官网的client是不需要传groupName,client自动获取

感谢!

配置化连接池参数

现在连接池配置是在 ConnectionPoolConfig 中作为常量定义,建议提取到 application.ymlfdfs.pool 中以支持连接池参数配置。

spring boot 2.0.0.RC1 报错

Description:

Configuration property name 'fdfs.thumbImage' is not valid:

Invalid characters: 'I'
Bean: defaultThumbImageConfig
Reason: Canonical names should be kebab-case ('-' separated), lowercase alpha-numeric characters and must start with a letter

Action:

Modify 'fdfs.thumbImage' so that it conforms to the canonical names requirements.

前缀不能有大写字母 要用 ‘-’ 隔开

com.github.tobato.fastdfs.exception.FdfsIOException: 客户端连接服务端出现了io异常:socket io exception occured while sending cmd

java.io.IOException: the end of the stream has been reached. not match the expected size
com.github.tobato.fastdfs.exception.FdfsIOException: 客户端连接服务端出现了io异常:socket io exception occured while sending cmd
2017-11-23 23:02:32.027 ERROR 26023 --- [l-EvictionTimer] c.g.t.fastdfs.conn.DefaultConnection : valid connection error java.net.SocketTimeoutException: Read timed out
上面是错误栈打印的,场景是我读取邮件的附件,并将邮件附件上传到FDFS上,使用storageClient.uploadFile这个方法时就报错,通过debug知道附件的inputstream是Base64DecoderStream,不知道和这个有没有关系,请问这是哪方面问题

重启tracker以后连接好像丢失了

2017-11-21 15:58:14,670 DEBUG - [对地址/192.168.0.242:22122发出交易请求TrackerListStoragesCommand]
2017-11-21 15:58:14,671 DEBUG - [发出交易请求..报文头为ProtoHead [contentLength=16, cmd=92, status=0]]
2017-11-21 15:58:14,672 DEBUG - [服务端返回报文头ProtoHead [contentLength=88, cmd=-25, status=119]]
2017-11-21 15:58:14,672 ERROR - [receive conent error]
java.io.IOException: recv cmd: -25 is not correct, expect cmd: 100
at com.github.tobato.fastdfs.proto.ProtoHead.validateResponseHead(ProtoHead.java:116)
at com.github.tobato.fastdfs.proto.AbstractFdfsCommand.receive(AbstractFdfsCommand.java:102)
at com.github.tobato.fastdfs.proto.AbstractFdfsCommand.execute(AbstractFdfsCommand.java:45)
at com.github.tobato.fastdfs.conn.ConnectionManager.execute(ConnectionManager.java:76)
at com.github.tobato.fastdfs.conn.TrackerConnectionManager.executeFdfsTrackerCmd(TrackerConnectionManager.java:72)
at com.github.tobato.fastdfs.service.impl.DefaultTrackerClient.listStorages(DefaultTrackerClient.java:91)

FdfsParamMapper报错

在使用过程中,发现有一个异常,具体错误信息如下,好像这是一个潜在的bug,应该是在反射的时候出错了。不知道怎么修复了。
Caused by: java.lang.RuntimeException: execute fdfs command error
at com.github.tobato.fastdfs.conn.ConnectionManager.execute(ConnectionManager.java:78)
at com.github.tobato.fastdfs.conn.ConnectionManager.executeFdfsCmd(ConnectionManager.java:58)
at com.github.tobato.fastdfs.service.DefaultFastFileStorageClient.uploadFileAndMetaData(DefaultFastFileStorageClient.java:78)
at com.github.tobato.fastdfs.service.DefaultFastFileStorageClient.uploadFile(DefaultFastFileStorageClient.java:41)
at com.touna.storageapi.common.FastdfsClient2.uploadFile(FastdfsClient2.java:211)
... 57 more
Caused by: com.github.tobato.fastdfs.proto.mapper.FdfsColumnMapException: java.lang.IllegalAccessException: Class com.github.tobato.fastdfs.proto.mapper.FdfsParamMapper can not access a member of class java.lang.Void with modifiers "private"
at com.github.tobato.fastdfs.proto.mapper.FdfsParamMapper.map(FdfsParamMapper.java:52)
at com.github.tobato.fastdfs.proto.FdfsResponse.decode(FdfsResponse.java:54)
at com.github.tobato.fastdfs.fastdfs.proto.AbstractFdfsCommand.receive(AbstractFdfsCommand.java:105)
at com.github.tobato.fastdfs.proto.AbstractFdfsCommand.execute(AbstractFdfsCommand.java:45)
atcom.github.tobato.fastdfs.conn.ConnectionManager.execute(ConnectionManager.java:73)
... 61 more
Caused by: java.lang.IllegalAccessException: Class com.github.tobato.fastdfs.proto.mapper.FdfsParamMapper can not access a member of class java.lang.Void with modifiers "private"
at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:109)
at java.lang.Class.newInstance(Class.java:373)
at com.github.tobato.fastdfs.proto.mapper.FdfsParamMapper.mapByIndex(FdfsParamMapper.java:89)
at com.github.tobato.fastdfs.proto.mapper.FdfsParamMapper.map(FdfsParamMapper.java:46)
... 66 more

配置多个tracker有问题

配置多个tracker,然后关掉其中一个tracker服务,文件上传时会报错,提示连接不到关掉的那个tracker服务。

mavne地址错误

作者在文档中是1.26.2-RELEASE,我去**仓库查了一下1.26.x只有1.26.2和1.26.1-RELEASE两个版本,希望修改一下文档信息,希望作者项目越来越好。

receive conent error

java.io.IOException: recv cmd: 32 is not correct, expect cmd: 100
at com.github.tobato.fastdfs.proto.ProtoHead.validateResponseHead(ProtoHead.java:114)
at com.github.tobato.fastdfs.proto.AbstractFdfsCommand.receive(AbstractFdfsCommand.java:102)
at com.github.tobato.fastdfs.proto.AbstractFdfsCommand.execute(AbstractFdfsCommand.java:45)
at com.github.tobato.fastdfs.conn.ConnectionManager.execute(ConnectionManager.java:76)
at com.github.tobato.fastdfs.conn.TrackerConnectionManager.executeFdfsTrackerCmd(TrackerConnectionManager.java:76)
at com.github.tobato.fastdfs.service.DefaultTrackerClient.getStoreStorage(DefaultTrackerClient.java:39)

DefaultGenerateStorageClient中按照fileOffset和fileSize分段下载文件时,传入的值无效,方法中参数值被写死

/**
 * 下载整个文件
 */
@Override
public <T> T downloadFile(String groupName, String path, DownloadCallback<T> callback) {
    long fileOffset = 0;
    long fileSize = 0;
    return downloadFile(groupName, path, fileOffset, fileSize, callback);
}

/**
 * 下载文件片段
 */
@Override
public <T> T downloadFile(String groupName, String path, long fileOffset, long fileSize,
        DownloadCallback<T> callback) {
    StorageNodeInfo client = trackerClient.getFetchStorage(groupName, path);
    StorageDownloadCommand<T> command = new StorageDownloadCommand<T>(groupName, path, 0, 0, callback);
    return connectionManager.executeFdfsCmd(client.getInetSocketAddress(), command);
}

文件断点续传问题

接口里面续传的uploadAppenderFile,appendFile方法中的参数fileSize,是整个需要上传的文件大小吗?测试的用例使用的两个字符串来测试的

FdfsIOException socket io

com.github.tobato.fastdfs.exception.FdfsIOException: 客户端连接服务端出现了io异常:socket io exception occured while receive content

/**

  • 对服务端发出请求然后接收反馈
    */
    public T execute(Connection conn) {
    // 封装socket交易 send
    try {
    send(conn.getOutputStream(), conn.getCharset());
    } catch (IOException e) {
    LOGGER.error("send conent error", e);
    throw new FdfsIOException("socket io exception occured while sending cmd", e);
    }

跟踪此处跳出异常:java.net.SocketException: Software caused connection abort: socket write error

对 FastDFS 4.06 版本,TrackerClient 中的 listStorages 方法报错。

Caused by: java.io.IOException: fixFieldsTotalSize=612but byte array length: 600 is invalid!
at com.github.tobato.fastdfs.proto.tracker.internal.TrackerListStoragesResponse.decode(TrackerListStoragesResponse.java:50) ~[fastdfs-client-1.25.4-RELEASE.jar:1.25.4-RELEASE]
at com.github.tobato.fastdfs.proto.tracker.internal.TrackerListStoragesResponse.decodeContent(TrackerListStoragesResponse.java:33) ~[fastdfs-client-1.25.4-RELEASE.jar:1.25.4-RELEASE]
at com.github.tobato.fastdfs.proto.tracker.internal.TrackerListStoragesResponse.decodeContent(TrackerListStoragesResponse.java:20) ~[fastdfs-client-1.25.4-RELEASE.jar:1.25.4-RELEASE]
at com.github.tobato.fastdfs.proto.FdfsResponse.decode(FdfsResponse.java:54) ~[fastdfs-client-1.25.4-RELEASE.jar:1.25.4-RELEASE]
at com.github.tobato.fastdfs.proto.AbstractFdfsCommand.receive(AbstractFdfsCommand.java:105) ~[fastdfs-client-1.25.4-RELEASE.jar:1.25.4-RELEASE]
at com.github.tobato.fastdfs.proto.AbstractFdfsCommand.execute(AbstractFdfsCommand.java:45) ~[fastdfs-client-1.25.4-RELEASE.jar:1.25.4-RELEASE]
... 61 common frames omitted

spring boot中使用FdfsConnectionPool报错

在spring boot 1.4中,内嵌tomcat,项目启动时报错,错误信息如下:WARN o.a.c.loader.WebappClassLoaderBase -The web application [api#v1] appears to have started a thread named [Abandoned connection cleanup thread] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
java.lang.Object.wait(Native Method)
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:43)
2016-11-04 11:26:59.373 [main] INFO o.s.b.a.l.AutoConfigurationReportLoggingInitializer -

Error starting ApplicationContext. To display the auto-configuration report enable debug logging (start with --debug)

2016-11-04 11:26:59.389 [main] ERROR o.s.boot.SpringApplication -Application startup failed
org.springframework.jmx.export.UnableToRegisterMBeanException: Unable to register MBean [com.github.tobato.fastdfs.conn.FdfsConnectionPool@574413bd] with key 'tobaotoFdfsConnectionPool'; nested exception is javax.management.InstanceAlreadyExistsException: MXBean already registered with name org.apache.commons.pool2:type=GenericKeyedObjectPool,name=pool

ERROR

fdht_set fail,errno: 2, error info: No such file or directory

FastFileStorageClient如何下载文件?异步回调函数中的流是未完成的状态

@GetMapping("/download") public Object getDown() throws Exception{ Object downloadFile = client.downloadFile("group1", "M00/00/00/CgoIblomae6ABaWxAAAAyLvNaSM.proper",new DownloadCallback<Object>() { @Override public Object recv(InputStream ins) throws IOException { FdfsInputStream fis = (FdfsInputStream) ins; System.err.println(fis.isReadCompleted()); return ins; } }); FdfsInputStream fis = (FdfsInputStream)downloadFile; while(!fis.isReadCompleted()){ Thread.sleep(20); } return downloadFile; }
流的状态一直是uncompleted,而且方法需要提供回调,那在controller如何返回流,异步请求?
github源码中提供的测试案例FastFileStorageClientTest没有文件下载,一般下载文件不是要经过服务后台吗,还是说借助浏览器的下载功能?

上传从文件报错

上传从文件的时候报错:
com.github.tobato.fastdfs.exception.FdfsServerException: 错误码:22,错误信息:无效的参数
上传代码
StorePath storePath = storageClient.uploadSlaveFile(“groupimg","groupimg/M00/01/55/wKgBDFgzuOiAHF5mAAG_Zqq_-Jc030.jpg",FileUtils.openInputStream(slaveFile),slaveFile.length(),prefixName,fileExtName);
服务端报错:
[2016-11-22 11:43:11] ERROR - file: ../common/fdfs_global.c, line: 52, the format of filename "groupimg/M00/01/55/wKgBDFgzuOiAHF5mAAG_Zqq_-Jc030.jpg" is invalid

mod_fastdfs.conf
url_have_group_name = true

项目中的字符集问题

亲,能将你代码中的错误提示全部翻译为英文吗?因使用的时候需要查看源码说明,中文基本乱码。感谢 @ @tobato

fastdfs jar 中的@recuerce注入没有成功???

java.lang.NullPointerException: null
at com.github.tobato.fastdfs.service.DefaultTrackerClient.listGroups(DefaultTrackerClient.java:81) ~[na:na]
at io.ymq.dubbo.provider.service.DemoServiceImpl.sayHello(DemoServiceImpl.java:40) ~[na:na]
at com.alibaba.dubbo.common.bytecode.Wrapper1.invokeMethod(Wrapper1.java) ~[na:na]
at com.alibaba.dubbo.rpc.proxy.javassist.JavassistProxyFactory$1.doInvoke(JavassistProxyFactory.java:47) ~[dubbo-2.6.3.jar:2.6.3]
at com.alibaba.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:76) ~[dubbo-2.6.3.jar:2.6.3]
at com.alibaba.dubbo.config.invoker.DelegateProviderMetaDataInvoker.invoke(DelegateProviderMetaDataInvoker.java:52) ~[dubbo-2.6.3.jar:2.6.3]
at com.alibaba.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:62) ~[dubbo-2.6.3.jar:2.6.3]
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:72) ~[dubbo-2.6.3.jar:2.6.3]
at com.alibaba.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:75) ~[dubbo-2.6.3.jar:2.6.3]
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:72) ~[dubbo-2.6.3.jar:2.6.3]
at com.alibaba.dubbo.rpc.filter.TimeoutFilter.invoke(TimeoutFilter.java:42) ~[dubbo-2.6.3.jar:2.6.3]
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:72) ~[dubbo-2.6.3.jar:2.6.3]
at com.alibaba.dubbo.rpc.protocol.dubbo.filter.TraceFilter.invoke(TraceFilter.java:78) ~[dubbo-2.6.3.jar:2.6.3]
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:72) ~[dubbo-2.6.3.jar:2.6.3]
at com.alibaba.dubbo.rpc.filter.ContextFilter.invoke(ContextFilter.java:72) ~[dubbo-2.6.3.jar:2.6.3]
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:72) ~[dubbo-2.6.3.jar:2.6.3]
at com.alibaba.dubbo.rpc.filter.GenericFilter.invoke(GenericFilter.java:131) ~[dubbo-2.6.3.jar:2.6.3]
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:72) ~[dubbo-2.6.3.jar:2.6.3]
at com.alibaba.dubbo.rpc.filter.ClassLoaderFilter.invoke(ClassLoaderFilter.java:38) ~[dubbo-2.6.3.jar:2.6.3]
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:72) ~[dubbo-2.6.3.jar:2.6.3]
at com.alibaba.dubbo.rpc.filter.EchoFilter.invoke(EchoFilter.java:38) ~[dubbo-2.6.3.jar:2.6.3]
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:72) ~[dubbo-2.6.3.jar:2.6.3]
at com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol$1.reply(DubboProtocol.java:103) ~[dubbo-2.6.3.jar:2.6.3]
at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:96) ~[dubbo-2.6.3.jar:2.6.3]
at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:172) ~[dubbo-2.6.3.jar:2.6.3]
at com.alibaba.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:51) ~[dubbo-2.6.3.jar:2.6.3]
at com.alibaba.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:80) ~[dubbo-2.6.3.jar:2.6.3]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_111]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[na:1.8.0_111]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_111]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.