Ошибка nested exception is

I am trying to configure Spring Data Elasticsearch in my Spring MVC project.I am following Java configuration. Following is my config class for elasticsearch as suggested here.

public class ESConfig {

    @Configuration
    @EnableElasticsearchRepositories(basePackages="com/estore/es/repository")   
    static class ElasticConfig{
        @Bean
        public ElasticsearchOperations elasticsearchTemplate() {            
            return new ElasticsearchTemplate(nodeBuilder().local(true).node().client());
        }

        @Bean
        public NodeBuilder nodeBuilder(){
            final NodeBuilder nodeBuilder = NodeBuilder.nodeBuilder();
            return nodeBuilder;     
        }

        @Bean
        public Node node(){
            return nodeBuilder().node();        
        }

        @Bean
        public Client client(){
            return node().client();
        }
    }

}

I am trying to autowire MerchantRepository into MerchantService.

MerchantRepository.java

public interface MerchantRepository extends ElasticsearchRepository<Merchant, Integer> {

}

MerchantService.java

@Transactional
@Service
public class MerchantService {

    @Autowired
    private MerchantDao merchantDao;

    @Autowired
    private MerchantRepository merchantRepository;

    public String addMerchant(Merchant merchant){   
        merchantRepository.save(merchant);      
        return "success";
    }

}

But Autowiring fails giving following exception:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'merchantService' defined in file [D:Hemraj-Devapache-tomcat-7.0.57webappsestoreWEB-INFclassescomestoreserviceMerchantService.class]: Unsatisfied dependency expressed through constructor argument with index 0 of type [com.estore.es.repository.MerchantRepository]: : Error creating bean with name 'merchantRepository': Invocation of init method failed; nested exception is java.lang.StackOverflowError; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'merchantRepository': Invocation of init method failed; nested exception is java.lang.StackOverflowError
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:751) ~[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:185) ~[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1133) ~[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1036) ~[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:505) ~[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) ~[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302) ~[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:229) ~[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298) ~[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) ~[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1081) ~[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1006) ~[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:904) ~[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:527) ~[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    ... 24 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'merchantRepository': Invocation of init method failed; nested exception is java.lang.StackOverflowError
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1568) ~[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:540) ~[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) ~[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302) ~[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:229) ~[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298) ~[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) ~[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1081) ~[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1006) ~[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:904) ~[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:815) ~[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:743) ~[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    ... 37 common frames omitted
Caused by: java.lang.StackOverflowError: null
    at sun.reflect.generics.reflectiveObjects.WildcardTypeImpl.hashCode(WildcardTypeImpl.java:230) ~[na:1.7.0_71]
    at org.springframework.util.ObjectUtils.nullSafeHashCode(ObjectUtils.java:330) ~[spring-core-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.core.ResolvableType.hashCode(ResolvableType.java:811) ~[spring-core-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.util.ConcurrentReferenceHashMap.getHash(ConcurrentReferenceHashMap.java:214) ~[spring-core-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.util.ConcurrentReferenceHashMap.getReference(ConcurrentReferenceHashMap.java:246) ~[spring-core-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.util.ConcurrentReferenceHashMap.get(ConcurrentReferenceHashMap.java:226) ~[spring-core-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.core.ResolvableType.forType(ResolvableType.java:1207) ~[spring-core-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.core.ResolvableType.forType(ResolvableType.java:1177) ~[spring-core-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.core.GenericTypeResolver.resolveType(GenericTypeResolver.java:262) ~[spring-core-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.data.util.TypeDiscoverer.resolveType(TypeDiscoverer.java:140) ~[spring-data-commons-1.8.4.RELEASE.jar:na]
    at org.springframework.data.util.TypeDiscoverer.createInfo(TypeDiscoverer.java:97) ~[spring-data-commons-1.8.4.RELEASE.jar:na]
    at org.springframework.data.util.ParentTypeAwareTypeInformation.createInfo(ParentTypeAwareTypeInformation.java:70) ~[spring-data-commons-1.8.4.RELEASE.jar:na]
    at org.springframework.data.util.ParameterizedTypeInformation.isResolvedCompletely(ParameterizedTypeInformation.java:207) ~[spring-data-commons-1.8.4.RELEASE.jar:na]
    at org.springframework.data.util.ParameterizedTypeInformation.hashCode(ParameterizedTypeInformation.java:183) ~[spring-data-commons-1.8.4.RELEASE.jar:na]
    at org.springframework.util.ObjectUtils.nullSafeHashCode(ObjectUtils.java:330) ~[spring-core-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.data.util.ParentTypeAwareTypeInformation.hashCode(ParentTypeAwareTypeInformation.java:98) ~[spring-data-commons-1.8.4.RELEASE.jar:na]
    at org.springframework.data.util.ParameterizedTypeInformation.hashCode(ParameterizedTypeInformation.java:183) ~[spring-data-commons-1.8.4.RELEASE.jar:na]
    at org.springframework.util.ObjectUtils.nullSafeHashCode(ObjectUtils.java:330) ~[spring-core-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.data.util.ParentTypeAwareTypeInformation.hashCode(ParentTypeAwareTypeInformation.java:98) ~[spring-data-commons-1.8.4.RELEASE.jar:na]
    at org.springframework.data.util.ParameterizedTypeInformation.hashCode(ParameterizedTypeInformation.java:183) ~[spring-data-commons-1.8.4.RELEASE.jar:na]
    at org.springframework.util.ObjectUtils.nullSafeHashCode(ObjectUtils.java:330) ~[spring-core-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.data.util.ParentTypeAwareTypeInformation.hashCode(ParentTypeAwareTypeInformation.java:98) ~[spring-data-commons-1.8.4.RELEASE.jar:na]
    at org.springframework.data.util.ParameterizedTypeInformation.hashCode(ParameterizedTypeInformation.java:183) ~[spring-data-commons-1.8.4.RELEASE.jar:na]
    at org.springframework.util.ObjectUtils.nullSafeHashCode(ObjectUtils.java:330) ~[spring-core-4.1.1.RELEASE.jar:4.1.1.RELEASE]
    at org.springframework.data.util.ParentTypeAwareTypeInformation.hashCode(ParentTypeAwareTypeInformation.java:98) ~[spring-data-commons-1.8.4.RELEASE.jar:na]
    at org.springframework.data.util.ParameterizedTypeInformation.hashCode(ParameterizedTypeInformation.java:183) ~[spring-data-commons-1.8.4.RELEASE.jar:na]

-------
-------same exception repeated as it is recusrsively making call to each other-------

Any suggestion? I guess I am missing something in configuration.

asked Nov 25, 2014 at 10:41

hemu's user avatar

hemuhemu

3,1592 gold badges43 silver badges66 bronze badges

I’ve got similar problem. I think that Spring has problem with entities with parameterized types which are self referencing. In my case, I’ve got classes:

public class Input<V> {
    private Pipe<V> pipe;
    ...
}

and

public class Pipe<V> {
    private Input<V> input;
    ...
}

which produce same stacktrace as yours. I suggest you to check if your Merchant class, or it’s subclass, or one of fields is or has parameterized type.

answered Dec 22, 2014 at 15:15

Woland's user avatar

WolandWoland

813 silver badges6 bronze badges

2

I got the same error but in different web application and different bean creation of course (I assume your application is also a web app), my application is onebusaway/oba. Here is the error I got when starting tomcat server within Eclipse Kepler on Windows 7 development machine:

Error creating bean with name 'transitGraphDaoImpl': Invocation of init method failed; 
nested exception is java.lang.StackOverflowError

I believe «This error is thrown to indicate that the application’s stack was exhausted, due to deep recursion.» from reading source

Solution:

  1. Double click on existing tomcat 7 server in Servers tab of Eclipse Kepler IDE, a configuration window will open
  2. Click «Open launch configuration»
  3. Click «Arguments» tab
  4. in «VM Arguments» box paste this line (change it accordingly to your environment)

    -Dcatalina.base="C:Program3workspace.metadata.pluginsorg.eclipse.wst.server.coretmp2
    -Dcatalina.home="C:Program3tomcat7" 
    -Dwtp.deploy="C:Program3workspace.metadata.pluginsorg.eclipse.wst.server.coretmp2wtpwebapps
    -Djava.endorsed.dirs="C:Program3tomcat7endorsed" -Xms256m -Xmx1g -XX:MaxPermSize=2g
    
  5. Click «apply» and «ok», then stop and start your server within Eclipse Servers tab again.

It works for me.

Note:

The key thing to keep in mind here is:

  1. in my case I have issue with tomcat’s memory
  2. hence I increased the memory size like this -Xms256m -Xmx1g -XX:MaxPermSize=2g I have 16gig available. To understand Java memory settings read this

hope it helps.

Saeed Zhiany's user avatar

Saeed Zhiany

2,0519 gold badges30 silver badges41 bronze badges

answered May 28, 2015 at 5:03

Dung's user avatar

DungDung

18.9k9 gold badges57 silver badges54 bronze badges

introduction
The

error is simple, but make a note of it and help someone who needs help

background programming today, suddenly reported an error, the complete error message is as follows: </p b>

org.springframework.dao.InvalidDataAccessResourceUsageException: error performing isolated work; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: error performing isolated work

	at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:279)
	at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:253)
	at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:527)
	at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
	at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242)
	at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:153)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
	at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:135)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
	at org.springframework.data.repository.core.support.SurroundingTransactionDetectorMethodInterceptor.invoke(SurroundingTransactionDetectorMethodInterceptor.java:61)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
	at com.sun.proxy.$Proxy99.save(Unknown Source)
	at com.imooc.repository.ProductCategoryRepositoryTest.saveTest(ProductCategoryRepositoryTest.java:36)
	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.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:74)
	at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:84)
	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:251)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
	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:190)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
	at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
	at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230)
	at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58)
Caused by: org.hibernate.exception.SQLGrammarException: error performing isolated work
	at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:63)
	at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
	at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)
	at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99)
	at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:79)
	at org.hibernate.id.enhanced.TableStructure$1.getNextValue(TableStructure.java:125)
	at org.hibernate.id.enhanced.NoopOptimizer.generate(NoopOptimizer.java:40)
	at org.hibernate.id.enhanced.SequenceStyleGenerator.generate(SequenceStyleGenerator.java:482)
	at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:123)
	at org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:192)
	at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:135)
	at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:62)
	at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:800)
	at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:785)
	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.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:308)
	at com.sun.proxy.$Proxy93.persist(Unknown Source)
	at org.springframework.data.jpa.repository.support.SimpleJpaRepository.save(SimpleJpaRepository.java:489)
	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.springframework.data.repository.core.support.RepositoryComposition$RepositoryFragments.invoke(RepositoryComposition.java:359)
	at org.springframework.data.repository.core.support.RepositoryComposition.invoke(RepositoryComposition.java:200)
	at org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor.invoke(RepositoryFactorySupport.java:644)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
	at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:608)
	at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.lambda$invoke$3(RepositoryFactorySupport.java:595)
	at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:595)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
	at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:59)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
	at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
	... 40 more
Caused by: java.sql.SQLSyntaxErrorException: Table 'sell.hibernate_sequence' doesn't exist
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:974)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:1024)
	at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)
	at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java)
	at org.hibernate.id.enhanced.TableStructure.executeQuery(TableStructure.java:216)
	at org.hibernate.id.enhanced.TableStructure.access$300(TableStructure.java:46)
	at org.hibernate.id.enhanced.TableStructure$1$1.execute(TableStructure.java:138)
	at org.hibernate.id.enhanced.TableStructure$1$1.execute(TableStructure.java:126)
	at org.hibernate.jdbc.WorkExecutor.executeReturningWork(WorkExecutor.java:55)
	at org.hibernate.jdbc.AbstractReturningWork.accept(AbstractReturningWork.java:34)
	at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:57)
	... 74 more

solution 1:

as you can see from the error message, when inserting data, you need to check the table structure fields to see which fields are missing </p b>

Read More:

Ошибка подключения к сервисам ФСС (решено)

С середины октября у многих организаций, в том числе медицинских учреждений возникли проблемы в работе с сервисом электронных больничных при подключении к нему из АРМ ЛПУ, медицинских информационных систем, из 1С.

При попытке загрузить электронные листки нетрудоспособности или создать новый выходило сообщение «Ошибка вызова сервиса передачи/получения данных фсс. Возможно в настройках соединения указан неправильный url». При попытке проверки соединения появлялось сообщение «Не удалось подключиться к сервису фсс».

Данная ошибка связана с заменой техслужбой ФСС 17 октября 2021 г. части интернет-адреса сервисов ЭЛН с *docs* на *eln*.

Для того, чтобы исправить эту ошибку:

1. Вам желательно обновить сертификаты ФСС. Подробная инструкция и сертификаты находятся здесь: https://lk.fss.ru/cert.html.

2. В АРМ ЛПУ необходимо открыть «Администрирование» — «Настройки сервисов ФСС» и заменить в строке соединения с сервисом ФСС url-адрес на верный.

Новый адрес соединения для медицинских организаций: https://eln.fss.ru/WSLnCryptoV20/FileOperationsLnService?WSDL

Новый адрес соединения для организаций-страхователей: https://eln.fss.ru/ws-insurer-crypto-v20/FileOperationsLnService?WSDL

Новый адрес соединения для МСЭ: https://eln.fss.ru/ws-mse-crypto-v20/FileOperationsLnService?WSDL

В случае недоступности основных адресов соединения (например, из-за DDoS-атак) ФСС ввела резервные точки подключения:

для медицинских организаций: https://eln-rez.fss.ru/WSLnCryptoV20/FileOperationsLnService?WSDL

для организаций-страхователей: https://eln-rez.fss.ru/ws-insurer-crypto-v20/FileOperationsLnService?WSDL

для МСЭ: https://eln-rez.fss.ru/ws-mse-crypto-v20/FileOperationsLnService?WSDL

Как исправить ошибку соединения с ФСС

Содержание

  1. How to Fix java.net.ConnectException: Connection refused: connect in Java
  2. java.net.ConnectException: Connection refused Error – Possible reasons
  3. How to solve java.net.ConnectException: Connection refused
  4. 19 comments :
  5. java.net.ConnectException: в соединении отказано
  6. [КАК ИСПРАВИТЬ] java.net.ConnectException: в соединении отказано: дополнительная информация отсутствует:

How to Fix java.net.ConnectException: Connection refused: connect in Java

java.net.ConnectException: Connection refused Error – Possible reasons

How to solve java.net.ConnectException: Connection refused

at com.mysql.jdbc.NonRegisteringDriver.connect . why we get this exception and how can we resolve it..can anyone tell me please

June 24, 2013 at 12:35 AM Anonymous said.

java.net.ConnectException: Connection refused: connect , is pretty general error. Real error is always behind, I suggest looking top level error and caused by clause. This will give you more ideas. In simple words, this error just says that your client and server is not able to connect, but doesn’t tell anything about why connection is not happening. There could be thousands of reason of a client and server not connecting including environment issues, host settings, network settings and application settings itself.

September 30, 2013 at 7:12 PM Anonymous said.

Hello there, I am getting following Connection refused: connect exception while trying to send an email from localhost. I am using smpt port 25

com.sun.mail.util.MailConnectException: Couldn’t connect to host, port: localhost, 25; timeout -1;
nested exception is:
java.net.ConnectException: Connection refused: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1984)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:656)
at javax.mail.Service.connect(Service.java:345)
at javax.mail.Service.connect(Service.java:226)
at javax.mail.Service.connect(Service.java:175)
at javax.mail.Transport.send0(Transport.java:253)
at javax.mail.Transport.send(Transport.java:124)
at Testing.main(Testing.java:62)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:301)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:229)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1950)
. 7 more
Please suggest what is wrong?

I am also facing this type of problem. please suggest me
Exception in thread «main» org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465;
nested exception is:
java.net.ConnectException: Connection refused. Failed messages: javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465;
nested exception is:
java.net.ConnectException: Connection refused; message exception details (1) are:
Failed message 1:
javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465;
nested exception is:
java.net.ConnectException: Connection refused
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1227)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:322)
at javax.mail.Service.connect(Service.java:236)
at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:389)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:306)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:296)
at com.aa.meals.mail.MealsMailSenderBean.sendMail(MealsMailSenderBean.java:21)
at com.aa.common.log.TestMail.main(TestMail.java:14)

help my java is not allowing me to install it says the installer cannot proceed with the current internet settings

following is my java code error.
Exception in thread «main» java.net.UnknownHostException: ubaid.tk
could you help me.

September 3, 2014 at 2:38 AM Anonymous said.

cp –p mail.cf mail.cf.orig

#inet_interfaces = $myhostname, localhost

#inet_interfaces = $myhostname, localhost

Test connection from unix prompt

telnet pslab17 25

Connected to pslab17.

Escape character is ‘^]’.

220 pslab17.localdomain ESMTP Postfix

Connection closed by foreign host.

September 23, 2014 at 3:30 PM Anonymous said.

google «setting java options -D ipv4=true»

Please check for the port number as its already in use by another application , if yes, kill that process and restart the server.like
go to command prompt—>type netstat -ano | find «port number»
you will find list of applications using your port number.. then just type
taskkill /pid «pid of port no» /f

restart server then it should work..

January 27, 2015 at 4:31 AM Anonymous said.

Hello
I am getting java.net.SocketException: Network is down: listen failed exception
what may be the reason?

Hostname maps to multiple IP addresses and one of the IP address is down. Some network libraries automatically try a connection to second server while others need to have code in the application. nslookup hostname. $telnet hostname 25 needs to be replaced with $telnet ip-address 25

September 9, 2015 at 6:05 AM Anonymous said.

An important point to note is that if you are using alias e.g. DNS to connect to database or servers then you must remember that JVM can cache DNS value to avoid looking up again and again when a connection needs to be made. This is all ok and improves performance but also risky in the even to fail-over when DNS points to another server. There is a JVM option to configure this behavior e.g. how long to cache, cache or not etc, worth looking.

java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at java.net.Socket.connect(Socket.java:478)
at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:388)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:523)
at sun.net.www.http.HttpClient.(HttpClient.java:227)
at sun.net.www.http.HttpClient.New(HttpClient.java:300)
at sun.net.www.http.HttpClient.New(HttpClient.java:317)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:970)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:911)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:836)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1172)
at java.net.URL.openStream(URL.java:1010)
at com.lowagie.text.Image.getInstance(Unknown Source)
at com.lowagie.text.Image.getInstance(Unknown Source)
at jsp_servlet._health_ecard.__hlth_idcard._jspService(__hlth_idcard.java:217)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:184)
at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:526)
at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:253)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1078)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:396)
at com.allianz.weo.struts.WeoRequestProcessor.processForwardConfig(WeoRequestProcessor.java:141)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:232)
at com.allianz.weo.struts.WeoRequestProcessor.process(WeoRequestProcessor.java:37)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:184)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3729)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

org.openqa.selenium.WebDriverException: java.net.ConnectException: Failed to connect to localhost

@Unknown, check if your server or Java application is running or port is correct.

April 15, 2019 at 5:22 AM Lokeshg.gujjar@gmail.com said.

My javanet connection on scratch day

hello Lokesh, what does that mean? are you getting any error?

December 27, 2020 at 8:39 PM Anonymous said.

INLT3635@Thread[main,5,main]@1655277498232
com.freedomgroup.common.communicator.TFGHttpClient:
Connection refused: connect:
Connection refused: connect
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:423)
at com.freedomgroup.common.exception.TFGExceptionUtility.createThrowable(TFGExceptionUtility.java:328)
at com.freedomgroup.common.exception.TFGExceptionUtility.createSessionException(TFGExceptionUtility.java:239)
at com.freedomgroup.common.gui.request.TFGInvocationHandler.invokeService(TFGInvocationHandler.java:97)
at com.freedomgroup.common.gui.request.TFGInvocationHandler.invokeService(TFGInvocationHandler.java:239)
at com.freedomgroup.common.gui.request.TFGInvocationHandler.invoke(TFGInvocationHandler.java:157)
at com.sun.proxy.$Proxy0.getSystemDeploymentName(Unknown Source)
at com.freedomgroup.policystar.gui.util.TFGPolicyStarUtilities.getSystemDeploymentName(TFGPolicyStarUtilities.java:2460)
at com.freedomgroup.policystar.gui.base.TFGPolicyStarGUIRunner.main(TFGPolicyStarGUIRunner.java:425)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:606)
at java.net.Socket.connect(Socket.java:555)
at java.net.Socket.(Socket.java:451)
at java.net.Socket.(Socket.java:303)
at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:80)
at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:122)
at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1361)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
at com.freedomgroup.common.communicator.TFGHttpClient.processRequest(TFGHttpClient.java:227)
at com.freedomgroup.common.communicator.TFGHttpRequestHandler.processRequest(TFGHttpRequestHandler.java:99)
at com.freedomgroup.common.gui.request.TFGInvocationHandler.invokeService(TFGInvocationHandler.java:79)
. 5 more

How can I help? did you checked if the server is up and running and whether you can connect to the server? If you are running your from home then make sure you check that VPN is connected to your office network as well.

Источник

java.net.ConnectException: в соединении отказано

[КАК ИСПРАВИТЬ] java.net.ConnectException: в соединении отказано: дополнительная информация отсутствует:

Я пытаюсь реализовать TCP-соединение, со стороны сервера все работает нормально, но когда я запускаю клиентскую программу (с клиентского компьютера), я получаю следующую ошибку:

Я попытался изменить номер сокета на случай, если он использовался, но безрезультатно. Кто-нибудь знает, что вызывает эту ошибку и как ее исправить.

  • Не могли бы вы выложить клиентский код? Если это удаленный клиент, убедитесь, что у вас нет проблем с брандмауэром!
  • Я отключил брандмауэры как на клиенте, так и на сервере, и проблема не исчезла.
  • 2 Какой интерфейс слушает сервер. Если вы слушаете только на localhost, вы не можете подключиться удаленно.
  • Я пытался подключиться удаленно, используя localhost, face palm. Это моя первая пробная версия TCP>. You have not started your server , но это действительно была проблема для меня!
  • Просто чтобы прояснить мысль — «Ядро Java в порядке». Единственная проблема заключается в том, что мы упускаем из виду проблемы . (состояние сервера, ip-адрес, порт, подключение к Интернету — для локальных IP-адресов необходимо находиться на одном маршрутизаторе и т. Д.)
  • 1 Коллин, что именно вы имеете в виду, говоря «сервер не ожидает приема соединений»? Люди повторяют это, как будто это что-то значит.
  • Я написал это некоторое время назад, но думаю, что имел в виду это как еще один способ сказать, что вы не запустили свой сервер.
  • в моем случае у меня было запущено четыре симулятора Gennymotion, я пытался загрузить приложение на вкладке Galaxy и получал эту ошибку. после того, как я много читал из приятеля WEB, я закрыл все симуляторы и eclipse, убил ADP в диспетчере задач, а затем перезапустил Eclipse, и все начало работать правильно. Я думаю, что когда у вас работает несколько симуляторов, а затем вы пытаетесь подключить устройство, ADB сходит с ума по моему опыту. это мои два цента . 🙂
  • Имя хоста и порт, к которому вы пытаетесь подключиться
  • Серверной стороне удалось начать правильно слушать
  • Нет брандмауэра, блокирующего соединение

Самой простой отправной точкой, вероятно, является попытка подключиться вручную с клиентской машины с помощью telnet или Putty. Если это удастся, значит проблема в вашем клиентском коде. Если нет, вам нужно потренироваться Зачем это не так. Wireshark может помочь вам в этом.

  • Иногда бывает это исключение. Это происходит в течение определенного периода времени. Это исключение немедленно генерируется. И тогда все становится нормально. У меня на сервере установлен брандмауэр. Но я добавил правило для входящих подключений, разрешающее входящие соединения на порт 8080. Иногда правило игнорируется?
  • @Ashwin: На самом деле невозможно сказать — вам нужно точно определить, как далеко ушли данные. Посмотрите журналы вашего брандмауэра и т. Д.
  • @JonSkeet, как настроить наш брандмауэр, если у нас есть эта ошибка?
  • 1 @Nikhil: Я не могу ответить на этот вопрос, но подозреваю, что является квалифицированному специалисту потребуется гораздо больше информации, чтобы помочь вам. (Во-первых, мы не знаем, какой у вас брандмауэр . )

Вы должны подключить свой клиентский сокет к удаленному ServerSocket. Вместо того

Socket clientSocket = new Socket(‘localhost’, 5000);

Socket clientSocket = new Socket(serverName, 5000);

Клиент должен подключиться к название сервера который должен соответствовать имени или IP-адресу коробки, на которой ServerSocket был создан (имя должно быть доступно с клиентского компьютера). BTW: Важно не имя, все дело в IP-адресах .

  • Я предполагаю, что она запускает их оба на одной машине в целях тестирования, поэтому localhost можно использовать
  • @Aaron: Она сказала, что это работает, если клиент и сервер работают на одной машине (вы можете найти ответ в другом комментарии).
  • «Вышеупомянутая строка связывает сокет с localhost» Нет, это не так, она привязывает его к INADDR_ANY. Это позволяет ему принимать соединения через любую сетевую карту. То, что делает OP, уже правильно. Ответ совершенно неверный. Голосование против.
  • @EJP: Вы правы ServerSocket , Я изменил ответ. Тем не менее clientSocket все еще пытается подключиться к localhost .
  • @home Тебе нужно удалять фраза про адрес привязки.

У меня была та же проблема, но запуск Сервера перед запуском Клиента исправил ее.

  • 4 Конечно, вам нужно запустить сервер перед клиентом. Сначала запуск клиента и попытка подключения к серверу означает, что при запуске сервера вы ни к чему не подключаетесь.
  • 5 @ user3308043 Да, это было очевидно, но для некоторых начинающих программистов (таких как я 3 года назад) это было не слишком очевидно, поэтому я просто хотел поделиться этим с такими глупыми парнями, как я.
  • Спасибо, мне это тоже помогло, тестовое соединение прошло успешно, но данные таблиц не отображались.

Один момент, который я хотел бы добавить к ответам выше: мой опыт

«Я размещал на своем сервере localhost и пытался подключиться к нему через эмулятор Android указав правильный URL, например http://localhost/my_api/login.php . И я получал ошибка отказа в соединении

Указать на заметку — Когда я просто зашел в браузер на ПК и использовал тот же URL ( http://localhost/my_api/login.php ) Я получил правильный ответ

так что проблемой в моем случае был термин localhost который я заменил на IP для моего сервера (поскольку ваш сервер размещен на вашем компьютере), что сделало его доступным с моего эмулятора на том же ПК.

Чтобы получить IP для вашего локального компьютера, вы можете использовать ipconfig с помощью команды cmd вы получите IPv4 что-то вроде 192.68.xx.yy Вуаля .. это IP-адрес вашего компьютера, на котором размещен ваш сервер. затем используйте его вместо localhost

Примечание. Вы не сможете получить доступ к этому частному IP-адресу ни с одного узла за пределами этого компьютера. (Если вам нужно, вы можете использовать для этого Ngnix)

У меня была такая же проблема с брокером Mqtt под названием vernemq. Но я решил ее, добавив следующее.

  1. $ sudo vmq-admin listener show

чтобы показать список разрешенных IPS и портов для vernemq

  1. $ sudo vmq-admin listener start port=1885 -a 0.0.0.0 —mountpoint /appname —nr_of_acceptors=10 —max_connections=20000

добавить любой ip и свой новый порт. теперь вы сможете без проблем подключиться.

Надеюсь, это решит вашу проблему.

  • 1 Это спасло меня, но поскольку vernemq не устанавливается с помощью apt-get, некоторым людям понадобится эта ссылка: vernemq.com/docs/installation/debian_and_ubuntu.html

Надеюсь, мой опыт может быть кому-то полезен. Я столкнулся с проблемой с той же трассировкой стека исключений, и я не мог понять, в чем проблема. Сервер базы данных, к которому я пытался подключиться, работал, порт был открыт и принимал соединения.

Проблема была в подключении к Интернету. Интернет-соединение, которое я использовал, не позволяло подключиться к соответствующему серверу. Когда я изменил детали подключения, проблема была решена.

В моем случае я дал сокету имя сервера (в моем случае «raspberrypi»), и вместо этого сделал его адрес IPv4, или, чтобы указать, IPv6 был сломан (имя преобразовано в IPv6)

В моем случае пришлось поставить галочку возле Expose daemon on tcp://localhost:2375 without TLS в docker настройки (в правой части панели задач щелкните правой кнопкой мыши на docker , Выбрать setting )

я получил эту ошибку, потому что я закрыл ServerSocket внутри цикла for, которые пытаются принять количество клиентов внутри него (я не закончил принимать все клинты)

так что будьте осторожны, где закрыть сокет

У меня была такая же проблема, и проблема заключалась в том, что я не закрывал объект сокета. После использования socket.close (); задача решена. Этот код у меня работает.

  • 1 Не закрытие клиентского сокета не вызывает отказа в соединении. Не было бы быть клиентский сокет, который нужно закрыть, если в соединении было отказано.

Я изменил свою сеть DNS, и проблема устранилась.

Вероятно, вы не инициализировали сервер или клиент пытается подключиться к неправильному IP / порту.

Возможно, предыдущий экземпляр клиента все еще работает и прослушивает порт 5000.

  • 6 Клиенты не слушают. Они говорят.
  • Предыдущий случай вызовет BindException на сервере, а не ConnectException у клиента.

Источник

1. Ошибка вызова сервиса передачи/получения данных.

Сообщение не соответствует формату XML Encryption.
Обратитесь к разработчику программного обеспечения, на котором осуществлялось шифрование данных.
Сообщите следующую информацию: Отсутствует элемент EncryptedData class ru.ibs.cryptopro.jcp.crypt.CryptoException

Причины:

  • Неправильные настройки АРМ ЛПУ в части подписания;

  • Неправильные настройки криптопровайдера;

  • Истечение срока действия сертификата, закрытого ключа или лицензии КриптоПро CSP.

Что делать:

1. Выполните настройку АРМ ЛПУ

В меню Администрирование – Настройка подписей для сервисов установите флаг «Шифровать сообщение». После этого Вам необходимо указать Имя сертификата ФСС и Тип контейнера.
Данный сертификат можно скачать на сайте https://lk.fss.ru/cert.html (если Вы настраиваете сервисы для тестирования, то Вам необходимо скачать ТЕСТОВЫЙ сертификат ФСС).
После скачивания установите его на компьютер.
Обратите внимание, Сертификаты МО (должен иметь закрытый ключ) и ФСС должны быть установлены в хранилище «Личное», соответственно тип контейнера выбран «Личные». Вся цепочка вышестоящих сертификатов в папку «Доверенные корневые центры сертификации». Все сертификаты должны быть актуальными и не отозванными.

2. Проверьте настройки криптопровайдера

При использовании криптопровайдера Vipnet CSP рабочей версией является 4.4 и выше.

При использовании криптопровайдера КриптоПро CSP рабочей версией является 4.0 и выше.
Через «Панель управления» в КриптоПро CSP зайдите на вкладку «Сервис», нажмите кнопку «Удалить запомненные пароли…». В окне «Удаление запомненных паролей» выбрать «Удалить все запомненные пароли закрытых ключей: Пользователя».
Проверьте настройки на вкладке «Алгоритмы». В выпадающем списке «Выберите тип CSP» выберите GOST R 34.10-2012. Должны быть установлены следующие параметры:

  • «Параметры алгоритма шифрования» — ГОСТ 28147-89, параметры алгоритма шифрования TK26 Z

  • «Параметры алгоритма подписи» — ГОСТ 34.10-2001, параметры по умолчанию

  • «Параметры алгоритма Диффи-Хеллмана» — ГОСТ 34.10-2001, параметры обмена по умолчанию

Ниже приведен образец настроек в КриптоПро CSP 5.0

Если вы не можете изменить параметры на вкладке «Алгоритмы» (даже запустив КриптоПро CSP от лица администратора), необходимо сделать следующее:
В реестре Windows открыть ключ HKEY_LOCAL_MACHINESOFTWAREWOW6432NodeCrypto ProCryptographyCurrentVersionParameters и изменть значение EnableOIDModify на 1. После чего необходимо перезагрузиться.

После изменения настроек криптопровайдера необходимо перезапустить АРМ ЛПУ.

3. Проверьте сертификаты и лицензии

С помощью системной утилиты certmgr.msc (кнопка Пуск — Выполнить (Найти программы и файлы)) откройте ваш сертификат. Срок действия сертификата не должен быть просрочен.
Запустите КриптоПро CSP. На вкладке «Общие» проверьте срок действия лицензии криптопровайдера.
Откройте вкладку «Сервис» и нажмите кнопку «Протестировать». Выберите контейнер закрытого ключа вашего сертификата. В открывшемся окне тестирования не должно быть ошибок, сообщений об истечении срока действия ключа итп.

2. ORA-20015: Не удалось определить состояние ЭЛН: 

Для перехода в статус ‘Продлен’ необходимо добавить период нетрудоспособности;
Для перехода в статус ‘Закрыт’ необходимо заполнить поля: ‘Приступить к работе с: дата’ или ‘Иное: код’;
Для перехода в статус ‘Направление на МСЭ’ необходимо заполнить поле ‘Дата направления в бюро МСЭ’

Причина:

1. В системе существует ЭЛН с таким же номером и такими же данными, которые Вы присылаете (дублирование данных);

2. Присылаемые данные в ЭЛН не соответствуют этапу оформления (заполнения) ЭЛН:

  • недостаточно данных для определения состояния ЭЛН;
  • внесенные данные относятся к разным этапам оформления (заполнения) ЭЛН.

Что делать: 

1. Запросите актуальное состояние ЭЛН из системы, тем самым Вы исключите повторную отправку тех же данных;

2. Выполните необходимую дальнейшую операцию с ЭЛН:

  • продление (добавить новый период нетрудоспособности);
  • закрытие (добавить информацию о закрытии);
  • направление на МСЭ (добавить информацию о направлении на МСЭ).

3. ORA-20013: Не удалось обновить данные. Обновляемая запись потеряла актуальность

Причина: 

Вы пытаетесь изменить ЭЛН, который ранее уже был кем-то изменен.

Что делать:

1. Запросите актуальное состояние ЭЛН из системы, тем самым Вы исключите повторную отправку тех же данных;

2. Выполните необходимую дальнейшую операцию с ЭЛН в соответствии с порядком 624н:

  • продление (добавить новый период нетрудоспособности);
  • закрытие (добавить информацию о закрытии);
  • направление на МСЭ (добавить информацию о направлении на МСЭ).

4. ORA-20001: Доступ к ЭЛН с №_________, СНИЛС_________, статусом _________ — ограничен

Причина: 

Вы пытаетесь получить данные ЭЛН, который находится в статусе, ограничивающем Ваш доступ. Например, страхователь пытается получить данные ЭЛН, который еще не закрыт медицинской организацией. Согласно процессной модели, страхователь может получить данные ЭЛН для редактированиня только на статусе 030 — Закрыт. Другой пример — бюро МСЭ не может получить данные ЭЛН, который не направлен в бюро МСЭ (статус 040 — Направление на МСЭ)

Что делать:

1. Удостоверьтесь, что номер ЭЛН, данные которого вы хотите получить, введен верно.

2. Дождитесь перехода ЭЛН на статус, который позволит Вам получить данные ЭЛН.

5. Ошибка вызова сервиса передачи / получения данных. Не удалось расшифровать сообщение.

Возможно сообщение было зашифровано на ключе, отличном от ключа уполномоченного лица ФСС.

Проверьте правильность и актуальность ключа уполномоченного лица ФСС.

Причины:

  • В настройках подписания и шифрования в используемом пользователем ПО, в поле «Сертификат уполномоченного лица ФСС» указан неверный сертификат;

  • Используется криптопровайдер Vipnet CSP определенной сборки;

Что делать:

Укажите верный сертификат уполномоченного лица ФСС:

  • Определите направление отправки запросов — тестовое или продуктивное;
  • Скачайте сертификат уполномоченного лица ФСС, опубликованный в соответствующем разделе (для взаимодействия с ЭЛН, ОВЭД, СЭДО, ЭРС или ПВСО, Ф4) на сайте Фонда:
    Сертификат для тестовой отправки опубликован на сайте https://lk-test.fss.ru/cert.html
    Сертификат для продуктива опубликован на сайте https://lk.fss.ru/cert.html;
  • Закройте используемое ПО. Удалите установленные сертификаты ФСС с помощью системной утилиты certmgr.msc (кнопка Пуск — Выполнить (Найти программы и файлы)).

    Установите скачанный сертификат на компьютер в хранилище «Личное» для текущего пользователя для взаимодействия с ЭЛН.
    Для взаимодействия с шлюзом ПВСО в АРМ Подготовки расчетов для ФСС, сертификат ФСС устанавливается в хранилище «Другие пользователи»;

  • Укажите данный сертификат в соответствующих настройках используемого ПО.

При использовании криптопровайдера Vipnet CSP — рабочей версией является 4.4 и выше.

6. Ошибка вызова сервиса передачи/получения данных.

Ошибка шифрования сообщения для получателя. Client received SOAP Fault from server: Fault occurred while processing. Please see the log to find more detail regarding exact cause of the failure.null

Причина:

Вы указали неверный сертификат для шифрования сообщения в поле «Имя сертификата МО»: указанный сертификат может быть использован только для подписания, но не шифрования.

Что делать:

Закажите и установите сертификат, который поддерживает не только операцию подписания, но и операцию шифрования.

7. Ошибка при установке АРМ ЛПУ: Unable to build entity manager factory.

Возникла ошибка при попытке загрузки данных из базы данных. Сообщите администратору следующую информацию:

Unable to build entity manager factory.

Причина:

  • Приложение было установлено некорректно (некорректно установлена БД);
  • База данных приложения установлена, но не доступна.

Что делать:

1. Запустите установку с правами администратора;

2. Выполните установку программы по шагам инструкции (путь, где лежит инструкция: http://lk.fss.ru/eln.html).

Если установка приложения выполнена в соответствии с инструкцией, но ошибка повторяется, необходимо проверить:

  • На компьютере отключена служба postgresql-9.5. Правой кнопкой на значке «Мой компьютер» — Управление — Службы и приложения — Службы, postgresql-9.5 должна быть запущена, запуск — автоматически. Для настройки запуска и работы службы Windows обратитесь к вашему системному администратору;
  • В настройках подключения к базе данных указан неправильный пароль для пользователя fss. Проверьте, что в БД этот пароль не менялся, пароль по умолчанию — fss;
  • Проверьте каталог установки БД PostgreSQL, по умолчанию — C:postgresql;
  • Подключение к БД PostgreSQL осуществляется по умолчанию по порту 5432. Этот порт должен быть открыт и доступен. Для проверки обратитесь к вашему системному администратору;
  • Приложение на клиентской машине не может связаться с сервером т.к. установлено какое либо сетевое ограничение. Проверьте, настройки антивирусов, файерволов, прочего сетевого ПО, для клиентской машины должны быть прописаны разрешения подключения к серверу по порту 5432.

8. Ошибка при попытке загрузки данных из базы данных.

Возникла ошибка при попытке загрузки данных из базы данных.

Сообщите следующую информацию: org.hibernate.exception.SQLGrammarException: could not extract ResultSet.

Причина:

Приложение АРМ ЛПУ не может получить данные из базы данных PostgreSQL. Эта ошибка возникает чаще всего после установки обновления, когда приложение обновлено, а база данных PostgreSQL по какой либо причине не обновлена.

Что делать:

  • Если приложение установлено на компьютере пользователя, а база данных PostgreSQL — на сервере. Необходимо запустить обновление приложение не только на клиенте, но и на серверной машине;
  • Если и приложение, и база данных PostgreSQL установлены на одной машине. Проверьте каталог установки приложения. По умолчанию, приложение АРМ ЛПУ ставится в каталог C:FssTools, а база данных PostgreSQL в каталог C:postgresql. Если при первичной установке была выбрана другая директория для установки приложения — то при обновлении вы должны указать именно эту директорию.

9. Ошибка при попытке зайти в настройки подписи в ПО АРМ ЛПУ.

При попытке зайти в настройки подписи в ПО АРМ ЛПУ выходит ошибка «Internal error. Reason: java.lang.ExceptionInInitializerError» или

«Internal Error. Reason: java.lang.NoClassDefFoundError: Could not initialize class ru.ibs.fss.common.security.signature.COMCryptoAPIClient» 

Причина:

Приложение было установлено некорректно (не зарегистрирована библиотека GostCryptography.dll).

Что делать:

1. Необходимо убедиться, что разрядность ОС совпадает с разрядностью установщика приложения.

2. Проверить, установлены ли в системе компоненты Microsoft.Net Framework версии 4 и выше (по умолчанию данные компоненты устанавливаются в C:WindowsMicrosoft.NETFramework или C:WindowsMicrosoft.NETFramework64). Данные компоненты можно скачать с сайта microsoft.com.

3. Проверить, что в папке, куда установлено приложение, имеется файл GostCryptography.dll (по умолчанию данный файл устанавливается в C:FssTools). Если данного файла нет, попробуйте переустановить приложение.

4. Если все верно, в командной строке выполнить:

cd C:FssTools — переходим в папку, в которой находится файл GostCryptography.dll

C:WindowsMicrosoft.NETFrameworkv4.0.30319RegAsm.exe /registered GostCryptography.dll — с указанием вашего адреса установки компонентов Microsoft.NET. Обратите внимание, что на ОС Windows 10 адрес установки компонентов Microsoft.NET может отличаться от приведенного в примере (C:WindowsMicrosoft.NETFramework64v4.0.30319RegAsm.exe /registered GostCryptography.dll).

5. Перезапустить приложение.

10. Ошибка вызова сервиса передачи/получения данных. Invalid element in ru.ibs.fss.eln.ws.FileOperationsLn_wsdl.ROW — SERV1_DT1.

Ошибка: «Ошибка вызова сервиса передачи/получения данных. Invalid element in ru.ibs.fss.eln.ws.FileOperationsLn_wsdl.ROW — SERV1_DT1» 

Причина:

Поле «SERV1_DT1» было исключено в новой спецификации 1.1 (14 версия и выше АРМ ЛПУ), изменена строка соединения.

Что делать:

Поменять строку соединения в настройках.

В меню Администрирование – Настройки сервисов ФСС – Строка соединения, укажите следующий адрес сервиса:

  • Для работы https://docs.fss.ru/WSLnCryptoV11/FileOperationsLnPort?WSDL
  • Для тестирования:
  • С шифрованием https://docs-test.fss.ru/WSLnCryptoV11/FileOperationsLnPort?WSDL

    Без шифрования https://docs-test.fss.ru/WSLnV11/FileOperationsLnPort?WSDL (Обратите внимание, при отправке на сервис без шифрования в настройках электронной подписи должен быть снят флаг «Шифровать сообщение»)

11. Ошибка при старте АРМ ЛПУ «В базе данных АРМ ЛПУ имеется некорректная запись» (Transaction already active)

Причина:

Данная ошибка возникает в случае, когда в какой либо таблице БД приложения сохранены некорректные записи (например, пустое или некорректное значение номера ЭЛН, пустые обязательные поля, строки с одинаковым значением номера ЭЛН, в т.ч. записи-дубли). Если в БД АРМ ЛПУ имеются такие записи, то возможны следующие ошибки:

  • Отправка и получение ЭЛН может происходить некорректно, зависать окно статусной строки;
  • Невозможно запросить номер ЭЛН из формы ЭЛН.

Что делать:

Для исправления нужно удалить из БД приложения неверную строку (такие записи можно удалить только вручную).

Необходимо подключиться к серверу базы данных PostgreSQL, найти и удалить из базы ошибочную строку. При установке АРМ ЛПУ, вместе с БД и компонентами PostgreSQL устанавливается клиент для подключения к БД. По умолчанию находится здесь: C:postgresqlbinpgAdmin3.exe

В интерфейсе клиента открывается сервер PostgreSQL 9.5. Затем открывается схема fss (пользователь fss, пароль fss) – Схемы – public – Таблицы.

Данные в АРМ ЛПУ хранятся в таблицах:

  • fc_eln_data_history — данные листков нетрудоспособнсти;
  • fc_eln_periods — сведения о периодах нетрудоспособности;
  • ref_ln_numbers — список запрошенных номеров ЭЛН.

Для просмотра таблицы необходимо выделить ее в дереве таблиц и нажать на значок «Просмотр данных в выбранном объекте»

Выделяете и удаляете (delete) строку, которая содержит пустое значение номера ЭЛН или другие ошибки.

Как вариант, для поиска и удаления ошибочных записей возможно использование SQL запроса типа:

select id from fc_eln_data_history where ln_code is null;
delete from fc_eln_data_history where id = ваш id;
Для открытия окна SQL запросов необходимо в главном меню нажать на значок «SQL».

Обратите внимание! При удалении строки ЭЛН, если в этом ЭЛН были созданы периоды нетрудоспособности, сначала необходимо удалить их. Периоды нетрудоспособности хранятся в отдельной таблице fc_eln_periods и связаны с fc_eln_data_history по номеру ЭЛН. Просмотр и удаление периодов аналогично, описанному выше.

12. Установка нового сертификата ФСС.

Установка нового сертификата ФСС описана в инструкции, которую можно скачать по ссылке
https://cabinets.fss.ru/Установка нового сертификата ФСС.docx

13. АРМ Подготовки расчетов для ФСС, ошибка «Набор ключей не определен»

Причина:

ГОСТ сертификата ФСС не соответствует выбранному в настройках криптопровайдеру, либо криптопровайдер не может получить закрытый ключ из контейнера закрытого ключа для выбранного сертификата.

Что делать:

  • В настройках АРМ Подписания и шифрования проверить, что указанный криптопровайдер соответствует реально установленному у пользователя;
  • В настройках АРМ Подписания и шифрования проверить, что ГОСТы сертификата подписания и сертификата ФСС одинаковы и соответствуют выбранному криптопровайдеру;
  • Если используется сертификат ЭП по ГОСТ 2012, откройте сертификат, вкладка «Состав», параметр «Средство электронной подписи».
    Необходимо проверить, что средство ЭП соответствует криптопровайдеру, установленному у пользователя;
  • Если используется сертификат ЭП по ГОСТ 2012 и криптопровайдер КриптоПро, проверьте настройки на вкладке «Алгоритмы». В выпадающем списке «Выберите тип CSP» выберите GOST R 34.10-2012 (256). Должны быть установлены следующие параметры:
    1. «Параметры алгоритма шифрования» — ГОСТ 28147-89, параметры алгоритма шифрования TK26 Z

    2. «Параметры алгоритма подписи» — ГОСТ 34.10-2001, параметры по умолчанию

    3. «Параметры алгоритма Диффи-Хеллмана» — ГОСТ 34.10-2001, параметры обмена по умолчанию

  • В сертификате отсутствует закрытый ключ. С помощью системной утилиты certmgr.msc откройте сертификат, на вкладке «Общие» должно быть написано «Есть закрытый ключ для этого сертификата»;
  • Криптопровайдер не видит контейнер закрытого ключа для этого сертификата. В криптопровайдере КриптоПро CSP перейдите на вкладку «Сервис» и нажмите «Удалить запомненные пароли» — для пользователя;
  • Возможно, контейнер поврежден сторонним ПО. Переустановите сертификат заново, с обязательным указанием контейнера;
  • Переустановите криптопровайдер.

14. АРМ ЛПУ, ошибка «Ошибка при проверке соединения с ФСС»

Ошибка: Ошибка дешифрования сообщения. Ошибка при попытке расшифровать сообщение. Стек: java.lang.NullPointerException
org.apache.cxf.binding.soap.SoapFault: Ошибка при попытке расшифровать сообщение. Стек: java.lang.NullPointerException 

Причина:

Расшифровывается запрос пользователя на сертификате ФСС, необходимо проверить настройки шифрования в настройках электронной подписи, определить причины возникновения в «Настройках электронной подписи»:

  • В составе сертификата раздел «Использование ключа» нет атрибута «Шифрование данных»

  • не проставлена галка «Шифровать сообщение» (для строки соединения с ФСС, где прописано «…-crypto-v20…»)

  • выбран тестовый сертификат ФСС для Прода (и наоборот), либо ошибка в самом сертификате

  • Неправильные настройки криптопровайдера

  • Истечение срока действия сертификата, закрытого ключа или лицензии КриптоПро CSP

Что делать:

см. п.1, п.5

15. АРМ ЛПУ, ошибка «Ошибка вызова сервиса передачи/получения данных. Ошибка шифрования сообщения»

Ошибка вызова сервиса передачи/получения данных. Ошибка шифрования сообщения. Ошибка при попытке зашифровать сообщение. Стек:
java.lang.NullPointerException… 

Причина:

Зашифровывается сообщение пользователя на сертификате МО, указанное в настройках.

Что делать:

см. п.1

Ошибка java.net.ConnectException: Connection refused является одним из самых распространенных сетевых исключений в Java. Эта ошибка возникает, когда вы работаете с архитектурой клиент-сервер и пытаетесь установить TCP-соединение от клиента к серверу.

Соединение также происходит в случае RMI (удаленного вызова метода), потому что RMI также использует протокол TCP-IP. При написании кода клиентского сокета на Java вы всегда должны обеспечивать правильную обработку этого исключения.

В этом руководстве по Java вы узнаете, почему возникает исключение при отказе в соединении и как решить проблему.

Причины

ошибка java.net.ConnectException: Connection refused

Отказ в соединении – это явный случай, когда клиент пытается подключиться через порт TCP, но не может это сделать. Вот некоторые из возможных причин, почему это происходит:

  1. Клиент и Сервер, один или оба из них не находятся в сети.

Да, возможно, что они не подключены к локальной сети, Интернету или любой другой сети.

  1. Сервер не работает.

Вторая наиболее распространенная причина – сервер не работает. Вы можете использовать следующие сетевые команды, например, ping, чтобы проверить, работает ли сервер.

  1. Сервер работает, но не видит порт, к которому клиент пытается подключиться.

Это еще одна распространенная причина возникновения «java.net.ConnectException: соединение отклонено», когда сервер работает, но видит другой порт. Трудно разобраться в этом случае, пока вы не проверите конфигурацию.

  1. Брандмауэр запрещает комбинацию хост-порт.

Почти каждая корпоративная сеть защищена. Если вы подключаетесь к сети других компаний, вам нужно убедиться, что они разрешают друг другу IP-адрес и номер порта.

  1. Неверная комбинация хост-портов.

Проверьте последнюю конфигурацию на стороне клиента и сервера, чтобы избежать исключения отказа в соединении.

  1. Неверный протокол в строке подключения.

TCP является базовым протоколом для многих высокоуровневых протоколов, включая HTTP, RMI и другие. Нужно убедиться, что вы передаете правильный протокол, какой сервер ожидает.

Если вам интересно узнать больше об этом, то изучите книгу по сетевым технологиям, такую ​​как Java Network Programming (4-е дополнение), написанную Гарольдом Эллиоттом Расти.

Java Network Programming

Простое решение состоит в том, чтобы сначала выяснить фактическую причину исключения. Здесь важнее всего подход к поиску правильной причины и решения. Как только вы узнаете реальную причину, вам, возможно, даже не потребуется вносить какие-либо существенные изменения.

Вот несколько советов, которые могут помочь исправить ошибку java.net.ConnectException: Connection refused:

  1. Сначала попытайтесь пропинговать целевой хост, если хост способен пинговать, это означает, что клиент и сервер находятся в сети.
  2. Попробуйте подключиться к хосту и порту сервера, используя telnet. Если вы можете подключиться, значит что-то не так с вашим клиентским кодом. Кроме того, наблюдая за выводом telnet, вы узнаете, работает ли сервер или нет, или сервер отключает соединение.

Ошибка подключения к серверу sedo.fss.ru, как исправить?

Современный электронный мир стал намного удобнее, и сегодня пользователю уже не нужно посещать какие-либо организации, компании и государственные структуры для того, чтобы получать справки, оформлять документы или сдавать отчеты. Сейчас большинство государственных органов встроило работу в онлайн-формате с электронной документацией.

Конечно, возможность не ходить в офис, а оформить документы на дому – это удобно, однако за удобство необходимо платить ошибками в работе. Это происходит редко, но рано или поздно тот или иной ресурс может перестать работать. Сегодня речь пойдет о том, как исправить проблемы при подключении к серверу sedo.fss.ru (фонд социального страхования)

Фонд социального страхования

Почему нет доступа к интернет-ресурсу sedo.fss.ru

Первое, что необходимо сделать пользователю – это определить причину того, почему интернет-ресурс sedo.fss.ru перестал работать. То есть нужно понять, причина кроется в устройстве, с помощью которого пользователь заходит на сайт, или же в самом сайте.

В том случае, если проблема кроется в сайте (что бывает в 9 из 10 случаев), пользователю ничего не надо делать. Ему необходимо лишь дождаться того момента, когда сотрудники технической поддержки фонда социального страхования самостоятельно решат проблему, а сам сайт заработает.

Для того, чтобы узнать, действительно ли sedo.fss.ru работает, стоит воспользоваться тем сервисом, посредством которого можно определить доступность сайта в различных точках мира.

Для этого необходимо сделать следующее:

  1. Перейти на официальный сайт инструмента для проверки интернет-ресурсов https://2ip.ru/site-availability/.
  2. Перейти в поле «Домен» и написать в этом поле sedo.fss.ru.
  3. Нажать на кнопку «Определить».

Определяем доступность сайта

При этом стоит обратить отдельное внимание на такие графы, как «Доступность» и «HTTP-код». Если интернет-ресурс действительно доступен с любой точки мира, а именно у пользователя он не работает, тогда в графе «Доступность» будет надпись «Доступен», а в пункте «HTTP-код» будет обозначен код 200.

В том случае, если в пункте «Доступность» будет стоять значение «Недоступен», а значением пункта «HTTP-код» не будет 200, это скажет о том, что проблема находится на стороне интернет-ресурса, и тогда пользователю остается лишь дождаться того момента, когда сайт заработает сам по себе.

Возможна еще одна ситуация – в графе «Доступность» будет стоять значение «Доступен», а в графе «HTTP-код» будет стоят значение не 200, а 301 или же 302. Подобные значения говорят о том, что пользователь при анализе вставил не https://sedo.fss.ru, а иную ссылку или ту же самую, но без https.

Что делать пользователю, если на интернет-ресурсе sedo.fss.ru проблемы

Если пользователь установил, что проблема с доступом к сайту sedo.fss.ru – это проблема самого сайта, у него есть два варианта дальнейших действий:

  1. Просто дождаться того момента, когда специалисты службы технической поддержки восстановят работоспособность интернет-ресурса. В большинстве случаев проблема разрешится в течение 1-2 минут или (что происходит намного реже) в течение нескольких часов.
  2. Позвонить по телефону горячей линии ФСС и сообщить об отсутствии доступа к странице sedo.fss.ru. Номер телефона горячей линии – 8 800 302 75 49.

Что делать пользователю, если сайт sedo.fss.ru доступен у всех

Если пользователь установит, что интернет-ресурс sedo.fss.ru доступен везде по миру, а именно у пользователя возникли проблемы с доступом, ему предстоит самостоятельно ее решить. А сделать в такой ситуации можно следующее:

  1. Зайти на интернет-ресурс с помощью другого браузера.
  2. Отключить все работающие расширения, действующие в браузере (возможно, что какие-то расширения мешают получению доступа к сервису).

Все эти действия не являются обязательными, но они могут помочь решить проблему.

Что делать, если при открытии сайта sedo.fss.ru появляется код 404

Если во время посещения интернет-ресурса sedo.fss.ru пользователь наткнется на код 404, это говорит о том, что пользователь посетил несуществующую страницу.

Такая ошибка говорит о том, что пользователь попал или на удаленную, или на перемещенную страницу. И на то есть две причины:

  1. Администраторы в самом деле удалили страницу или переместили ее.
  2. Пользователь случайно посетил не тот адрес, который должен был посетить.

В первом случае пользователю нужно дождаться починки, а втором – перепроверить правильность ввода адреса сайта.

Заключение

Если сайт «Фонда Социального Страхования» не работает, первым делом нужно понять, неисправность на самом сервисе или неисправность с вашей стороны. Если на самом сайте sedo.fss.ru, нужно просто подождать, пока проблему не решат. Если проблема у вас, нужно искать причину и устранять

Источник

ФОНД СОЦИАЛЬНОГО СТРАХОВАНИЯ
РОССИЙСКОЙ ФЕДЕРАЦИИ

Содержание:

1. Ошибка вызова сервиса передачи/получения данных.

Сообщение не соответствует формату XML Encryption.
Обратитесь к разработчику программного обеспечения, на котором осуществлялось шифрование данных.
Сообщите следующую информацию: Отсутствует элемент EncryptedData class ru.ibs.cryptopro.jcp.crypt.CryptoException

Причины:

Неправильные настройки АРМ ЛПУ в части подписания;

Неправильные настройки криптопровайдера;

Истечение срока действия сертификата, закрытого ключа или лицензии КриптоПро CSP.

Что делать:

1. Выполните настройку АРМ ЛПУ

В меню Администрирование – Настройка подписей для сервисов установите флаг «Шифровать сообщение». После этого Вам необходимо указать Имя сертификата ФСС и Тип контейнера. Данный сертификат можно скачать на сайте https://lk.fss.ru/cert.html (если Вы настраиваете сервисы для тестирования, то Вам необходимо скачать ТЕСТОВЫЙ сертификат ФСС). После скачивания установите его на компьютер.
Обратите внимание, Сертификаты МО (должен иметь закрытый ключ) и ФСС должны быть установлены в хранилище «Личное», соответственно тип контейнера выбран «Личные». Вся цепочка вышестоящих сертификатов в папку «Доверенные корневые центры сертификации». Все сертификаты должны быть актуальными и не отозванными.

2. Проверьте настройки криптопровайдера

При использовании криптопровайдера Vipnet CSP рабочей версией является 4.4 и выше.
При использовании криптопровайдера КриптоПро CSP рабочей версией является 4.0 и выше.
Через «Панель управления» в КриптоПро CSP зайдите на вкладку «Сервис», нажмите кнопку «Удалить запомненные пароли…». В окне «Удаление запомненных паролей» выбрать «Удалить все запомненные пароли закрытых ключей: Пользователя».
Проверьте настройки на вкладке «Алгоритмы». В выпадающем списке «Выберите тип CSP» выберите GOST R 34.10-2012. Должны быть установлены следующие параметры:

«Параметры алгоритма шифрования» — ГОСТ 28147-89, параметры алгоритма шифрования TK26 Z

«Параметры алгоритма подписи» — ГОСТ 34.10-2001, параметры по умолчанию

«Параметры алгоритма Диффи-Хеллмана» — ГОСТ 34.10-2001, параметры обмена по умолчанию

Ниже приведен образец настроек в КриптоПро CSP 5.0

Если вы не можете изменить параметры на вкладке «Алгоритмы» (даже запустив КриптоПро CSP от лица администратора), необходимо сделать следующее:
В реестре Windows открыть ключ HKEY_LOCAL_MACHINESOFTWAREWOW6432NodeCrypto ProCryptographyCurrentVersionParameters и изменть значение EnableOIDModify на 1. После чего необходимо перезагрузиться.

После изменения настроек криптопровайдера необходимо перезапустить АРМ ЛПУ.

3. Проверьте сертификаты и лицензии

С помощью системной утилиты certmgr.msc (кнопка Пуск — Выполнить (Найти программы и файлы)) откройте ваш сертификат. Срок действия сертификата не должен быть просрочен.
Запустите КриптоПро CSP. На вкладке «Общие» проверьте срок действия лицензии криптопровайдера.
Откройте вкладку «Сервис» и нажмите кнопку «Протестировать». Выберите контейнер закрытого ключа вашего сертификата. В открывшемся окне тестирования не должно быть ошибок, сообщений об истечении срока действия ключа итп.

2. ORA-20015: Не удалось определить состояние ЭЛН:

Для перехода в статус ‘Продлен’ необходимо добавить период нетрудоспособности;
Для перехода в статус ‘Закрыт’ необходимо заполнить поля: ‘Приступить к работе с: дата’ или ‘Иное: код’;
Для перехода в статус ‘Направление на МСЭ’ необходимо заполнить поле ‘Дата направления в бюро МСЭ’

Причина:

1. В системе существует ЭЛН с таким же номером и такими же данными, которые Вы присылаете (дублирование данных);

2. Присылаемые данные в ЭЛН не соответствуют этапу оформления (заполнения) ЭЛН:

  • недостаточно данных для определения состояния ЭЛН;
  • внесенные данные относятся к разным этапам оформления (заполнения) ЭЛН.

Что делать:

1. Запросите актуальное состояние ЭЛН из системы, тем самым Вы исключите повторную отправку тех же данных;

2. Выполните необходимую дальнейшую операцию с ЭЛН:

  • продление (добавить новый период нетрудоспособности);
  • закрытие (добавить информацию о закрытии);
  • направление на МСЭ (добавить информацию о направлении на МСЭ).

3. ORA-20013: Не удалось обновить данные. Обновляемая запись потеряла актуальность

Причина:

Вы пытаетесь изменить ЭЛН, который ранее уже был кем-то изменен.

Что делать:

1. Запросите актуальное состояние ЭЛН из системы, тем самым Вы исключите повторную отправку тех же данных;

2. Выполните необходимую дальнейшую операцию с ЭЛН в соответствии с порядком 624н:

  • продление (добавить новый период нетрудоспособности);
  • закрытие (добавить информацию о закрытии);
  • направление на МСЭ (добавить информацию о направлении на МСЭ).

4. ORA-20001: Доступ к ЭЛН с №_________, СНИЛС_________, статусом _________ — ограничен

Причина:

Вы пытаетесь получить данные ЭЛН, который находится в статусе, ограничивающем Ваш доступ. Например, страхователь пытается получить данные ЭЛН, который еще не закрыт медицинской организацией. Согласно процессной модели, страхователь может получить данные ЭЛН для редактированиня только на статусе 030 — Закрыт. Другой пример — бюро МСЭ не может получить данные ЭЛН, который не направлен в бюро МСЭ (статус 040 — Направление на МСЭ)

Что делать:

1. Удостоверьтесь, что номер ЭЛН, данные которого вы хотите получить, введен верно.

2. Дождитесь перехода ЭЛН на статус, который позволит Вам получить данные ЭЛН.

5. Ошибка вызова сервиса передачи / получения данных. Не удалось расшифровать сообщение.

Возможно сообщение было зашифровано на ключе, отличном от ключа уполномоченного лица ФСС.

Проверьте правильность и актуальность ключа уполномоченного лица ФСС.

Причины:

В настройках подписания и шифрования в используемом пользователем ПО, в поле «Сертификат уполномоченного лица ФСС» указан неверный сертификат;

Используется криптопровайдер Vipnet CSP определенной сборки;

Что делать:

Укажите верный сертификат уполномоченного лица ФСС:

  • Определите направление отправки запросов — тестовое или продуктивное;
  • Скачайте сертификат уполномоченного лица ФСС, опубликованный в соответствующем разделе (для взаимодействия с ЭЛН, ОВЭД, СЭДО, ЭРС или ПВСО, Ф4) на сайте Фонда:
    Сертификат для тестовой отправки опубликован на сайте https://lk-test.fss.ru/cert.html
    Сертификат для продуктива опубликован на сайте https://lk.fss.ru/cert.html;
  • Закройте используемое ПО. Удалите установленные сертификаты ФСС с помощью системной утилиты certmgr.msc (кнопка Пуск — Выполнить (Найти программы и файлы)).
    Установите скачанный сертификат на компьютер в хранилище «Личное» для текущего пользователя для взаимодействия с ЭЛН.
    Для взаимодействия с шлюзом ПВСО в АРМ Подготовки расчетов для ФСС, сертификат ФСС устанавливается в хранилище «Другие пользователи»;
  • Укажите данный сертификат в соответствующих настройках используемого ПО.

При использовании криптопровайдера Vipnet CSP — рабочей версией является 4.4 и выше.

6. Ошибка вызова сервиса передачи/получения данных.

Ошибка шифрования сообщения для получателя. Client received SOAP Fault from server: Fault occurred while processing. Please see the log to find more detail regarding exact cause of the failure.null

Причина:

Вы указали неверный сертификат для шифрования сообщения в поле «Имя сертификата МО»: указанный сертификат может быть использован только для подписания, но не шифрования.

Что делать:

Закажите и установите сертификат, который поддерживает не только операцию подписания, но и операцию шифрования.

7. Ошибка при установке АРМ ЛПУ: Unable to build entity manager factory.

Возникла ошибка при попытке загрузки данных из базы данных. Сообщите администратору следующую информацию:

Unable to build entity manager factory.

Причина:

  • Приложение было установлено некорректно (некорректно установлена БД);
  • База данных приложения установлена, но не доступна.

Что делать:

1. Запустите установку с правами администратора;

2. Выполните установку программы по шагам инструкции (путь, где лежит инструкция: http://lk.fss.ru/eln.html).

Если установка приложения выполнена в соответствии с инструкцией, но ошибка повторяется, необходимо проверить:

  • На компьютере отключена служба postgresql-9.5. Правой кнопкой на значке «Мой компьютер» — Управление — Службы и приложения — Службы, postgresql-9.5 должна быть запущена, запуск — автоматически. Для настройки запуска и работы службы Windows обратитесь к вашему системному администратору;
  • В настройках подключения к базе данных указан неправильный пароль для пользователя fss. Проверьте, что в БД этот пароль не менялся, пароль по умолчанию — fss;
  • Проверьте каталог установки БД PostgreSQL, по умолчанию — C:postgresql;
  • Подключение к БД PostgreSQL осуществляется по умолчанию по порту 5432. Этот порт должен быть открыт и доступен. Для проверки обратитесь к вашему системному администратору;
  • Приложение на клиентской машине не может связаться с сервером т.к. установлено какое либо сетевое ограничение. Проверьте, настройки антивирусов, файерволов, прочего сетевого ПО, для клиентской машины должны быть прописаны разрешения подключения к серверу по порту 5432.

8. Ошибка при попытке загрузки данных из базы данных.

Возникла ошибка при попытке загрузки данных из базы данных.

Сообщите следующую информацию: org.hibernate.exception.SQLGrammarException: could not extract ResultSet.

Причина:

Приложение АРМ ЛПУ не может получить данные из базы данных PostgreSQL. Эта ошибка возникает чаще всего после установки обновления, когда приложение обновлено, а база данных PostgreSQL по какой либо причине не обновлена.

Что делать:

  • Если приложение установлено на компьютере пользователя, а база данных PostgreSQL — на сервере. Необходимо запустить обновление приложение не только на клиенте, но и на серверной машине;
  • Если и приложение, и база данных PostgreSQL установлены на одной машине. Проверьте каталог установки приложения. По умолчанию, приложение АРМ ЛПУ ставится в каталог C:FssTools, а база данных PostgreSQL в каталог C:postgresql. Если при первичной установке была выбрана другая директория для установки приложения — то при обновлении вы должны указать именно эту директорию.

9. Ошибка при попытке зайти в настройки подписи в ПО АРМ ЛПУ.

При попытке зайти в настройки подписи в ПО АРМ ЛПУ выходит ошибка «Internal error. Reason: java.lang.ExceptionInInitializerError» или

«Internal Error. Reason: java.lang.NoClassDefFoundError: Could not initialize class ru.ibs.fss.common.security.signature.COMCryptoAPIClient»

Причина:

Приложение было установлено некорректно (не зарегистрирована библиотека GostCryptography.dll).

Что делать:

1. Необходимо убедиться, что разрядность ОС совпадает с разрядностью установщика приложения.

2. Проверить, установлены ли в системе компоненты Microsoft.Net Framework версии 4 и выше (по умолчанию данные компоненты устанавливаются в C:WindowsMicrosoft.NETFramework или C:WindowsMicrosoft.NETFramework64). Данные компоненты можно скачать с сайта microsoft.com.

3. Проверить, что в папке, куда установлено приложение, имеется файл GostCryptography.dll (по умолчанию данный файл устанавливается в C:FssTools). Если данного файла нет, попробуйте переустановить приложение.

4. Если все верно, в командной строке выполнить:

cd C:FssTools — переходим в папку, в которой находится файл GostCryptography.dll

C:WindowsMicrosoft.NETFrameworkv4.0.30319RegAsm.exe /registered GostCryptography.dll — с указанием вашего адреса установки компонентов Microsoft.NET. Обратите внимание, что на ОС Windows 10 адрес установки компонентов Microsoft.NET может отличаться от приведенного в примере (C:WindowsMicrosoft.NETFramework64v4.0.30319RegAsm.exe /registered GostCryptography.dll).

5. Перезапустить приложение.

10. Ошибка вызова сервиса передачи/получения данных. Invalid element in ru.ibs.fss.eln.ws.FileOperationsLn_wsdl.ROW — SERV1_DT1.

Ошибка: «Ошибка вызова сервиса передачи/получения данных. Invalid element in ru.ibs.fss.eln.ws.FileOperationsLn_wsdl.ROW — SERV1_DT1»

Причина:

Поле «SERV1_DT1» было исключено в новой спецификации 1.1 (14 версия и выше АРМ ЛПУ), изменена строка соединения.

Что делать:

Поменять строку соединения в настройках.

В меню Администрирование – Настройки сервисов ФСС – Строка соединения, укажите следующий адрес сервиса:

Без шифрования https://docs-test.fss.ru/WSLnV11/FileOperationsLnPort?WSDL (Обратите внимание, при отправке на сервис без шифрования в настройках электронной подписи должен быть снят флаг «Шифровать сообщение»)

11. Ошибка при старте АРМ ЛПУ «В базе данных АРМ ЛПУ имеется некорректная запись» (Transaction already active)

Причина:

Данная ошибка возникает в случае, когда в какой либо таблице БД приложения сохранены некорректные записи (например, пустое или некорректное значение номера ЭЛН, пустые обязательные поля, строки с одинаковым значением номера ЭЛН, в т.ч. записи-дубли). Если в БД АРМ ЛПУ имеются такие записи, то возможны следующие ошибки:

  • Отправка и получение ЭЛН может происходить некорректно, зависать окно статусной строки;
  • Невозможно запросить номер ЭЛН из формы ЭЛН.

Что делать:

Для исправления нужно удалить из БД приложения неверную строку (такие записи можно удалить только вручную).

Необходимо подключиться к серверу базы данных PostgreSQL, найти и удалить из базы ошибочную строку. При установке АРМ ЛПУ, вместе с БД и компонентами PostgreSQL устанавливается клиент для подключения к БД. По умолчанию находится здесь: C:postgresqlbinpgAdmin3.exe

В интерфейсе клиента открывается сервер PostgreSQL 9.5. Затем открывается схема fss (пользователь fss, пароль fss) – Схемы – public – Таблицы.

Данные в АРМ ЛПУ хранятся в таблицах:

  • fc_eln_data_history — данные листков нетрудоспособнсти;
  • fc_eln_periods — сведения о периодах нетрудоспособности;
  • ref_ln_numbers — список запрошенных номеров ЭЛН.

Для просмотра таблицы необходимо выделить ее в дереве таблиц и нажать на значок «Просмотр данных в выбранном объекте»

Выделяете и удаляете (delete) строку, которая содержит пустое значение номера ЭЛН или другие ошибки.
Как вариант, для поиска и удаления ошибочных записей возможно использование SQL запроса типа:
select id from fc_eln_data_history where ln_code is null;
delete from fc_eln_data_history where id;
Для открытия окна SQL запросов необходимо в главном меню нажать на значок «SQL».

Обратите внимание! При удалении строки ЭЛН, если в этом ЭЛН были созданы периоды нетрудоспособности, сначала необходимо удалить их. Периоды нетрудоспособности хранятся в отдельной таблице fc_eln_periods и связаны с fc_eln_data_history по номеру ЭЛН. Просмотр и удаление периодов аналогично, описанному выше.

12. Установка нового сертификата ФСС.

Установка нового сертификата ФСС описана в инструкции, которую можно скачать по ссылке
https://cabinets.fss.ru/Установка нового сертификата ФСС.docx

13. АРМ Подготовки расчетов для ФСС, ошибка «Набор ключей не определен»

Причина:

ГОСТ сертификата ФСС не соответствует выбранному в настройках криптопровайдеру, либо криптопровайдер не может получить закрытый ключ из контейнера закрытого ключа для выбранного сертификата.

Что делать:

  • В настройках АРМ Подписания и шифрования проверить, что указанный криптопровайдер соответствует реально установленному у пользователя;
  • В настройках АРМ Подписания и шифрования проверить, что ГОСТы сертификата подписания и сертификата ФСС одинаковы и соответствуют выбранному криптопровайдеру;
  • Если используется сертификат ЭП по ГОСТ 2012, откройте сертификат, вкладка «Состав», параметр «Средство электронной подписи».
    Необходимо проверить, что средство ЭП соответствует криптопровайдеру, установленному у пользователя;
  • Если используется сертификат ЭП по ГОСТ 2012 и криптопровайдер КриптоПро, проверьте настройки на вкладке «Алгоритмы». В выпадающем списке «Выберите тип CSP» выберите GOST R 34.10-2012 (256). Должны быть установлены следующие параметры:

«Параметры алгоритма шифрования» — ГОСТ 28147-89, параметры алгоритма шифрования TK26 Z

«Параметры алгоритма подписи» — ГОСТ 34.10-2001, параметры по умолчанию

«Параметры алгоритма Диффи-Хеллмана» — ГОСТ 34.10-2001, параметры обмена по умолчанию

  • В сертификате отсутствует закрытый ключ. С помощью системной утилиты certmgr.msc откройте сертификат, на вкладке «Общие» должно быть написано «Есть закрытый ключ для этого сертификата»;
  • Криптопровайдер не видит контейнер закрытого ключа для этого сертификата. В криптопровайдере КриптоПро CSP перейдите на вкладку «Сервис» и нажмите «Удалить запомненные пароли» — для пользователя;
  • Возможно, контейнер поврежден сторонним ПО. Переустановите сертификат заново, с обязательным указанием контейнера;
  • Переустановите криптопровайдер.
  • 14. АРМ ЛПУ, ошибка «Ошибка при проверке соединения с ФСС»

    Ошибка: Ошибка дешифрования сообщения. Ошибка при попытке расшифровать сообщение. Стек: java.lang.NullPointerException org.apache.cxf.binding.soap.SoapFault: Ошибка при попытке расшифровать сообщение. Стек: java.lang.NullPointerException

    Причина:

    Расшифровывается запрос пользователя на сертификате ФСС, необходимо проверить настройки шифрования в настройках электронной подписи, определить причины возникновения в «Настройках электронной подписи»:

    В составе сертификата раздел «Использование ключа» нет атрибута «Шифрование данных»

    не проставлена галка «Шифровать сообщение» (для строки соединения с ФСС, где прописано «. -crypto-v20. «)

    выбран тестовый сертификат ФСС для Прода (и наоборот), либо ошибка в самом сертификате

    Неправильные настройки криптопровайдера

    Истечение срока действия сертификата, закрытого ключа или лицензии КриптоПро CSP

    Что делать:

    15. АРМ ЛПУ, ошибка «Ошибка вызова сервиса передачи/получения данных. Ошибка шифрования сообщения»

    Ошибка вызова сервиса передачи/получения данных. Ошибка шифрования сообщения. Ошибка при попытке зашифровать сообщение. Стек: java.lang.NullPointerException.

    Причина:

    Зашифровывается сообщение пользователя на сертификате МО, указанное в настройках.

    Источник

    Improve Article

    Save Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    java.net.ConnectException: Connection refused: connect is the most frequent kind of occurring networking exception in Java whenever the software is in client-server architecture and trying to make a TCP connection from the client to the server. We need to handle the exception carefully in order to fulfill the communication problem. First, let us see the possible reasons for the occurrence of java.net.ConnectException: Connection refused.

    1. As client and server involved, both should be in a network like LAN or internet. If it is not present, it will throw an exception on the client-side.
    2. If the server is not running. Usually ports like 8080, (for tomcat), 3000 or 4200 (for react/angular), 3306(MySQL), 27017(MongoDB) or occupied by some other agents or totally down i.e. instance not started.
    3. Sometimes a server may be running but not listening on port because of some overridden settings etc.
    4. Usually, for security reasons, the Firewall will be there, and if it is disallowing the communication.
    5. By mistake, the wrong port is mentioned in the port or the random port generation number given.
    6. Connection string information wrong. For example:

    Connection conn = DriverManager.getConnection(“jdbc:mysql://localhost/:3306<dbname>?” + “user=<username>&password=<password>”);

    Implementation: Here we are using MySQL database connectivity and connection info should be of this format. Now let us see the ways to fixing the ways of java.net.ConnectException: Connection refused. Ping the destination host by using the commands as shown below:

    ping <hostname> - to test
    
    ipconfig(for windows)/ifconfig(linux) - to get network configuration
    
    netstat - statistical report

    nslookup - DNS lookup name

    There are tools like “Putty” are available to communicate, and it is a free implementation of Telnet and SSH for Windows and Unix.

    Example 1: 

    Java

    import java.io;

    import java.net.*;

    import java.util.*;

    public class GFG {

        public static void main(String[] args)

        {

            String hostname = "127.0.0.1";

            int port = 80;

            try (Socket socket = new Socket(hostname, port)) {

                InputStream inputStream

                    = socket.getInputStream();

                InputStreamReader inputStreamReader

                    = new InputStreamReader(inputStream);

                int data;

                StringBuilder outputString

                    = new StringBuilder();

                while ((data = inputStreamReader.read())

                       != -1) {

                    outputString.append((char)data);

                }

            }

            catch (IOException ex) {

                System.out.println(

                    "Connection Refused Exception as the given hostname and port are invalid : "

                    + ex.getMessage());

            }

        }

    }

    Output:

    Example 2: MySQL connectivity Check

    Java

    import java.io.*;

    import java.util.*;

    import java.sql.*;

    try {

        Connection con = null;

        String driver = "com.mysql.jdbc.Driver";

        String IPADDRESS = "localhost"

            String url1

        String db = "<your dbname>";

        String dbUser = "<username>";

        String dbPasswd = "<password>";

        Class.forName(driver).newInstance();

        con = DriverManager.getConnection(url1 + db, dbUser,

                                          dbPasswd);

        System.out.println("Database Connection Established");

    }

    catch (IOException ex) {

        System.out.println(

            "Connection Refused Exception as the given hostname and port are invalid : "

            + ex.getMessage());

    }

    Similarly, for other DB, we need to specify the correct port number i.e. 27017 for MongoDB be it in case of SSL (Secure socket layer) is there, prior checks of Firewall need to be checked and hence via coding we can suggest the solutions to overcome the exception 

    Conclusion: As readymade commands like ping, telnet, etc are available and tools like putty are available, we can check the connectivity information and overcome the exception.

    Improve Article

    Save Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    java.net.ConnectException: Connection refused: connect is the most frequent kind of occurring networking exception in Java whenever the software is in client-server architecture and trying to make a TCP connection from the client to the server. We need to handle the exception carefully in order to fulfill the communication problem. First, let us see the possible reasons for the occurrence of java.net.ConnectException: Connection refused.

    1. As client and server involved, both should be in a network like LAN or internet. If it is not present, it will throw an exception on the client-side.
    2. If the server is not running. Usually ports like 8080, (for tomcat), 3000 or 4200 (for react/angular), 3306(MySQL), 27017(MongoDB) or occupied by some other agents or totally down i.e. instance not started.
    3. Sometimes a server may be running but not listening on port because of some overridden settings etc.
    4. Usually, for security reasons, the Firewall will be there, and if it is disallowing the communication.
    5. By mistake, the wrong port is mentioned in the port or the random port generation number given.
    6. Connection string information wrong. For example:

    Connection conn = DriverManager.getConnection(“jdbc:mysql://localhost/:3306<dbname>?” + “user=<username>&password=<password>”);

    Implementation: Here we are using MySQL database connectivity and connection info should be of this format. Now let us see the ways to fixing the ways of java.net.ConnectException: Connection refused. Ping the destination host by using the commands as shown below:

    ping <hostname> - to test
    
    ipconfig(for windows)/ifconfig(linux) - to get network configuration
    
    netstat - statistical report

    nslookup - DNS lookup name

    There are tools like “Putty” are available to communicate, and it is a free implementation of Telnet and SSH for Windows and Unix.

    Example 1: 

    Java

    import java.io;

    import java.net.*;

    import java.util.*;

    public class GFG {

        public static void main(String[] args)

        {

            String hostname = "127.0.0.1";

            int port = 80;

            try (Socket socket = new Socket(hostname, port)) {

                InputStream inputStream

                    = socket.getInputStream();

                InputStreamReader inputStreamReader

                    = new InputStreamReader(inputStream);

                int data;

                StringBuilder outputString

                    = new StringBuilder();

                while ((data = inputStreamReader.read())

                       != -1) {

                    outputString.append((char)data);

                }

            }

            catch (IOException ex) {

                System.out.println(

                    "Connection Refused Exception as the given hostname and port are invalid : "

                    + ex.getMessage());

            }

        }

    }

    Output:

    Example 2: MySQL connectivity Check

    Java

    import java.io.*;

    import java.util.*;

    import java.sql.*;

    try {

        Connection con = null;

        String driver = "com.mysql.jdbc.Driver";

        String IPADDRESS = "localhost"

            String url1

        String db = "<your dbname>";

        String dbUser = "<username>";

        String dbPasswd = "<password>";

        Class.forName(driver).newInstance();

        con = DriverManager.getConnection(url1 + db, dbUser,

                                          dbPasswd);

        System.out.println("Database Connection Established");

    }

    catch (IOException ex) {

        System.out.println(

            "Connection Refused Exception as the given hostname and port are invalid : "

            + ex.getMessage());

    }

    Similarly, for other DB, we need to specify the correct port number i.e. 27017 for MongoDB be it in case of SSL (Secure socket layer) is there, prior checks of Firewall need to be checked and hence via coding we can suggest the solutions to overcome the exception 

    Conclusion: As readymade commands like ping, telnet, etc are available and tools like putty are available, we can check the connectivity information and overcome the exception.

    [КАК ИСПРАВИТЬ] java.net.ConnectException: в соединении отказано: дополнительная информация отсутствует:

    Я пытаюсь реализовать TCP-соединение, со стороны сервера все работает нормально, но когда я запускаю клиентскую программу (с клиентского компьютера), я получаю следующую ошибку:

    java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432) at java.net.Socket.connect(Socket.java:529) at java.net.Socket.connect(Socket.java:478) at java.net.Socket.(Socket.java:375) at java.net.Socket.(Socket.java:189) at TCPClient.main(TCPClient.java:13) 

    Я попытался изменить номер сокета на случай, если он использовался, но безрезультатно. Кто-нибудь знает, что вызывает эту ошибку и как ее исправить.

    Код сервера:

    //TCPServer.java import java.io.*; import java.net.*; class TCPServer { public static void main(String argv[]) throws Exception { String fromclient; String toclient; ServerSocket Server = new ServerSocket(5000); System.out.println('TCPServer Waiting for client on port 5000'); while (true) { Socket connected = Server.accept(); System.out.println(' THE CLIENT' + ' ' + connected.getInetAddress() + ':' + connected.getPort() + ' IS CONNECTED '); BufferedReader inFromUser = new BufferedReader( new InputStreamReader(System.in)); BufferedReader inFromClient = new BufferedReader( new InputStreamReader(connected.getInputStream())); PrintWriter outToClient = new PrintWriter( connected.getOutputStream(), true); while (true) { System.out.println('SEND(Type Q or q to Quit):'); toclient = inFromUser.readLine(); if (toclient.equals('q') || toclient.equals('Q')) { outToClient.println(toclient); connected.close(); break; } else { outToClient.println(toclient); } fromclient = inFromClient.readLine(); if (fromclient.equals('q') || fromclient.equals('Q')) { connected.close(); break; } else { System.out.println('RECIEVED:' + fromclient); } } } } } 

    Код клиента:

    //TCPClient.java import java.io.*; import java.net.*; class TCPClient { public static void main(String argv[]) throws Exception { String FromServer; String ToServer; Socket clientSocket = new Socket('localhost', 5000); BufferedReader inFromUser = new BufferedReader(new InputStreamReader( System.in)); PrintWriter outToServer = new PrintWriter( clientSocket.getOutputStream(), true); BufferedReader inFromServer = new BufferedReader(new InputStreamReader( clientSocket.getInputStream())); while (true) { FromServer = inFromServer.readLine(); if (FromServer.equals('q') || FromServer.equals('Q')) { clientSocket.close(); break; } else { System.out.println('RECIEVED:' + FromServer); System.out.println('SEND(Type Q or q to Quit):'); ToServer = inFromUser.readLine(); if (ToServer.equals('Q') || ToServer.equals('q')) { outToServer.println(ToServer); clientSocket.close(); break; } else { outToServer.println(ToServer); } } } } } 
    • Не могли бы вы выложить клиентский код? Если это удаленный клиент, убедитесь, что у вас нет проблем с брандмауэром!
    • Я отключил брандмауэры как на клиенте, так и на сервере, и проблема не исчезла.
    • 2 Какой интерфейс слушает сервер. Если вы слушаете только на localhost, вы не можете подключиться удаленно.
    • Я пытался подключиться удаленно, используя localhost, face palm. Это моя первая пробная версия TCP>. <Как заставить его работать удаленно?
    • Помните, что у вас может быть несколько аппаратных брандмауэров «голого металла» … работает ли он, если клиент и сервер находятся на одном устройстве?

    Это исключение означает, что служба не прослушивает IP / порт, к которому вы пытаетесь подключиться:

    • Вы пытаетесь подключиться к неправильному IP / хосту или порту.
    • Вы не запустили свой сервер.
    • Ваш сервер не прослушивает соединения.
    • На серверах Windows очередь ожидания прослушивания заполнена.
    • 53 Я чувствую себя глупым из-за того, что не заметил You have not started your server, но это действительно была проблема для меня!
    • Просто чтобы прояснить мысль — «Ядро Java в порядке». Единственная проблема заключается в том, что мы упускаем из виду проблемы … (состояние сервера, ip-адрес, порт, подключение к Интернету — для локальных IP-адресов необходимо находиться на одном маршрутизаторе и т. Д.)
    • 1 Коллин, что именно вы имеете в виду, говоря «сервер не ожидает приема соединений»? Люди повторяют это, как будто это что-то значит.
    • Я написал это некоторое время назад, но думаю, что имел в виду это как еще один способ сказать, что вы не запустили свой сервер.
    • в моем случае у меня было запущено четыре симулятора Gennymotion, я пытался загрузить приложение на вкладке Galaxy и получал эту ошибку. после того, как я много читал из приятеля WEB, я закрыл все симуляторы и eclipse, убил ADP в диспетчере задач, а затем перезапустил Eclipse, и все начало работать правильно. Я думаю, что когда у вас работает несколько симуляторов, а затем вы пытаетесь подключить устройство, ADB сходит с ума по моему опыту. это мои два цента … :)

    Я бы проверил:

    • Имя хоста и порт, к которому вы пытаетесь подключиться
    • Серверной стороне удалось начать правильно слушать
    • Нет брандмауэра, блокирующего соединение

    Самой простой отправной точкой, вероятно, является попытка подключиться вручную с клиентской машины с помощью telnet или Putty. Если это удастся, значит проблема в вашем клиентском коде. Если нет, вам нужно потренироваться Зачем это не так. Wireshark может помочь вам в этом.

    • Иногда бывает это исключение. Это происходит в течение определенного периода времени. Это исключение немедленно генерируется. И тогда все становится нормально. У меня на сервере установлен брандмауэр. Но я добавил правило для входящих подключений, разрешающее входящие соединения на порт 8080. Иногда правило игнорируется?
    • @Ashwin: На самом деле невозможно сказать — вам нужно точно определить, как далеко ушли данные. Посмотрите журналы вашего брандмауэра и т. Д.
    • @JonSkeet, как настроить наш брандмауэр, если у нас есть эта ошибка?
    • 1 @Nikhil: Я не могу ответить на этот вопрос, но подозреваю, что является квалифицированному специалисту потребуется гораздо больше информации, чтобы помочь вам. (Во-первых, мы не знаем, какой у вас брандмауэр …)

    Вы должны подключить свой клиентский сокет к удаленному ServerSocket. Вместо того

    Socket clientSocket = new Socket('localhost', 5000);

    делать

    Socket clientSocket = new Socket(serverName, 5000);

    Клиент должен подключиться к название сервера который должен соответствовать имени или IP-адресу коробки, на которой ServerSocket был создан (имя должно быть доступно с клиентского компьютера). BTW: Важно не имя, все дело в IP-адресах …

    • Я предполагаю, что она запускает их оба на одной машине в целях тестирования, поэтому localhost можно использовать
    • @Aaron: Она сказала, что это работает, если клиент и сервер работают на одной машине (вы можете найти ответ в другом комментарии).
    • «Вышеупомянутая строка связывает сокет с localhost» Нет, это не так, она привязывает его к INADDR_ANY. Это позволяет ему принимать соединения через любую сетевую карту. То, что делает OP, уже правильно. Ответ совершенно неверный. Голосование против.
    • @EJP: Вы правы ServerSocket, Я изменил ответ. Тем не менее clientSocket все еще пытается подключиться к localhost.
    • @home Тебе нужно удалять фраза про адрес привязки.

    У меня была та же проблема, но запуск Сервера перед запуском Клиента исправил ее.

    • 4 Конечно, вам нужно запустить сервер перед клиентом. Сначала запуск клиента и попытка подключения к серверу означает, что при запуске сервера вы ни к чему не подключаетесь.
    • 5 @ user3308043 Да, это было очевидно, но для некоторых начинающих программистов (таких как я 3 года назад) это было не слишком очевидно, поэтому я просто хотел поделиться этим с такими глупыми парнями, как я.
    • Спасибо, мне это тоже помогло, тестовое соединение прошло успешно, но данные таблиц не отображались.

    Один момент, который я хотел бы добавить к ответам выше: мой опыт

    «Я размещал на своем сервере localhost и пытался подключиться к нему через эмулятор Android указав правильный URL, например http://localhost/my_api/login.php . И я получал ошибка отказа в соединении

    Указать на заметку — Когда я просто зашел в браузер на ПК и использовал тот же URL (http://localhost/my_api/login.php) Я получил правильный ответ

    так что проблемой в моем случае был термин localhost который я заменил на IP для моего сервера (поскольку ваш сервер размещен на вашем компьютере), что сделало его доступным с моего эмулятора на том же ПК.


    Чтобы получить IP для вашего локального компьютера, вы можете использовать ipconfig с помощью команды cmd вы получите IPv4 что-то вроде 192.68.xx.yy Вуаля .. это IP-адрес вашего компьютера, на котором размещен ваш сервер. затем используйте его вместо localhost

    http://192.168.72.66/my_api/login.php


    Примечание. Вы не сможете получить доступ к этому частному IP-адресу ни с одного узла за пределами этого компьютера. (Если вам нужно, вы можете использовать для этого Ngnix)

    У меня была такая же проблема с брокером Mqtt под названием vernemq. Но я решил ее, добавив следующее.

    1. $ sudo vmq-admin listener show

    чтобы показать список разрешенных IPS и портов для vernemq

    1. $ sudo vmq-admin listener start port=1885 -a 0.0.0.0 --mountpoint /appname --nr_of_acceptors=10 --max_connections=20000

    добавить любой ip и свой новый порт. теперь вы сможете без проблем подключиться.

    Надеюсь, это решит вашу проблему.

    • 1 Это спасло меня, но поскольку vernemq не устанавливается с помощью apt-get, некоторым людям понадобится эта ссылка: vernemq.com/docs/installation/debian_and_ubuntu.html

    Надеюсь, мой опыт может быть кому-то полезен. Я столкнулся с проблемой с той же трассировкой стека исключений, и я не мог понять, в чем проблема. Сервер базы данных, к которому я пытался подключиться, работал, порт был открыт и принимал соединения.

    Проблема была в подключении к Интернету. Интернет-соединение, которое я использовал, не позволяло подключиться к соответствующему серверу. Когда я изменил детали подключения, проблема была решена.

    В моем случае я дал сокету имя сервера (в моем случае «raspberrypi»), и вместо этого сделал его адрес IPv4, или, чтобы указать, IPv6 был сломан (имя преобразовано в IPv6)

    В моем случае пришлось поставить галочку возле Expose daemon on tcp://localhost:2375 without TLS в docker настройки (в правой части панели задач щелкните правой кнопкой мыши на docker, Выбрать setting)

    я получил эту ошибку, потому что я закрыл ServerSocket внутри цикла for, которые пытаются принять количество клиентов внутри него (я не закончил принимать все клинты)

    так что будьте осторожны, где закрыть сокет

    У меня была такая же проблема, и проблема заключалась в том, что я не закрывал объект сокета. После использования socket.close (); задача решена. Этот код у меня работает.

    ClientDemo.java

    public class ClientDemo { public static void main(String[] args) throws UnknownHostException, IOException { Socket socket = new Socket('127.0.0.1', 55286); OutputStreamWriter os = new OutputStreamWriter(socket.getOutputStream()); os.write('Santosh Karna'); os.flush(); socket.close(); } } 

    и ServerDemo.java

    public class ServerDemo { public static void main(String[] args) throws IOException { System.out.println('server is started'); ServerSocket serverSocket= new ServerSocket(55286); System.out.println('server is waiting'); Socket socket=serverSocket.accept(); System.out.println('Client connected'); BufferedReader reader=new BufferedReader(new InputStreamReader(socket.getInputStream())); String str=reader.readLine(); System.out.println('Client data: '+str); socket.close(); serverSocket.close(); } } 
    • 1 Не закрытие клиентского сокета не вызывает отказа в соединении. Не было бы быть клиентский сокет, который нужно закрыть, если в соединении было отказано.

    Я изменил свою сеть DNS, и проблема устранилась.

    Вероятно, вы не инициализировали сервер или клиент пытается подключиться к неправильному IP / порту.

    Возможно, предыдущий экземпляр клиента все еще работает и прослушивает порт 5000.

    • 6 Клиенты не слушают. Они говорят.
    • Предыдущий случай вызовет BindException на сервере, а не ConnectException у клиента.

    У меня была такая же проблема, и выяснилось, что это связано с разрешением catalina.out файл неверен. Это не было доступно для записи пользователем tomcat. Как только я исправил разрешения, проблема была решена. Я узнал, что это проблема с разрешениями из журналов в tomcat8-initd.log файл:

    /usr/sbin/tomcat8: line 40: /usr/share/tomcat8/logs/catalina.out: Permission denied

    • 1 «В доступе отказано» — это не то же самое, что «В соединении отказано».
    • Ошибка в разрешении отклонена была в tomcat8-initd.log файл, в то время как журналы вывода сервера имели именно ту ошибку, о которой говорилось в вопросе.

    Tweet

    Share

    Link

    Plus

    Send

    Send

    Pin

    Table of Contents

    Problem Description

    SpringBoot project has integrated springfox. After updating SpringBoot to 2.6.0 the application fails to start and throws an exception: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException.

    The exception stack is as follows.

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    
    Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
    2021-12-23 16:52:35.735 ERROR 15348 --- [           main] o.s.boot.SpringApplication               : Application run failed
    
    org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException
        at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:181)
        at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54)
        at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356)
        at org.springframework.context.support.DefaultLifecycleProcessor$$Lambda$778/18341126.accept(Unknown Source)
        at java.lang.Iterable.forEach(Iterable.java:75)
        at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155)
        at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123)
        at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:935)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586)
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145)
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:730)
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:412)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:302)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1290)
        at com.chqiuu.test.TestApplication.main(TestApplication.java:23)
    Caused by: java.lang.NullPointerException: null
        at springfox.documentation.spring.web.WebMvcPatternsRequestConditionWrapper.getPatterns(WebMvcPatternsRequestConditionWrapper.java:56)
        at springfox.documentation.RequestHandler.sortedPaths(RequestHandler.java:113)
        at springfox.documentation.spi.service.contexts.Orderings.lambda$byPatternsCondition$3(Orderings.java:89)
        at springfox.documentation.spi.service.contexts.Orderings$$Lambda$796/7205235.apply(Unknown Source)
        at java.util.Comparator.lambda$comparing$77a9974f$1(Comparator.java:469)
        at java.util.Comparator$$Lambda$68/3330950.compare(Unknown Source)
        at java.util.TimSort.countRunAndMakeAscending(TimSort.java:351)
        at java.util.TimSort.sort(TimSort.java:230)
        at java.util.Arrays.sort(Arrays.java:1512)
        at java.util.ArrayList.sort(ArrayList.java:1454)
        at java.util.stream.SortedOps$RefSortingSink.end(SortedOps.java:387)
        at java.util.stream.Sink$ChainedReference.end(Sink.java:258)
        at java.util.stream.Sink$ChainedReference.end(Sink.java:258)
        at java.util.stream.Sink$ChainedReference.end(Sink.java:258)
        at java.util.stream.Sink$ChainedReference.end(Sink.java:258)
        at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
        at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
        at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
        at springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider.requestHandlers(WebMvcRequestHandlerProvider.java:81)
        at springfox.documentation.spring.web.plugins.AbstractDocumentationPluginsBootstrapper$$Lambda$790/3038834.apply(Unknown Source)
        at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
        at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
        at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512)
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
        at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
        at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
        at springfox.documentation.spring.web.plugins.AbstractDocumentationPluginsBootstrapper.withDefaults(AbstractDocumentationPluginsBootstrapper.java:107)
        at springfox.documentation.spring.web.plugins.AbstractDocumentationPluginsBootstrapper.buildContext(AbstractDocumentationPluginsBootstrapper.java:91)
        at springfox.documentation.spring.web.plugins.AbstractDocumentationPluginsBootstrapper.bootstrapDocumentationPlugins(AbstractDocumentationPluginsBootstrapper.java:82)
        at springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper.start(DocumentationPluginsBootstrapper.java:100)
        at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178)
        ... 15 common frames omitted
    

    Solution

    This problem has plagued me for a long time, but also on the Internet to find a lot of information, but also some people say springboot version upgrade caused by the problem.
    There are two solutions found.

    1. downgrade springboot to 2.5.7, but this is only a temporary solution to the problem, not a permanent solution.
    2. migrate from SpringFox to SpringDoc, this way you can deal with the problem, but the amount of changes is still a bit large for the project that is already online.

    Neither of these solutions is what I want the most, and I recently researched the documentation for Spring Boot 2.6.0. I found that 2.6.0 started using path matching based on PathPatternParser, while the Springfox version has not been updated or uses AntPathMatcher which causes this problem.

    documentation for Spring Boot 2.6.0

    Handling this issue is also very simple. Just modify the yaml file to change the SpringBoot path matching pattern to AntPathMatcher.

    The configuration is as follows.

    1
    2
    3
    4
    
    spring:
      mvc:
        pathmatch:
          matching-strategy: ANT_PATH_MATCHER
    

    Reference https://blog.csdn.net/QIU176161650/article/details/122111567

    Issue

    I am trying to deploy a Spring-Boot application with Service accessing a JpaRepository which is connecting to PostgreSQL DB at runtime using JPA and Hibernate, refering to connection properties in src/main/resources/application.properties

    When I am deploying the built .WAR on Tomcat, the Application is failing to start with the error as given in below Error Log.

    Can somebody please help out what is the meaning of this error?

    Note I have noted the trouble points in MyServiceImpl and MyRequestBody classes but I am not getting the exact reason for the error, as I am new to Spring framework.

    The definitions of the relevant classes in my Spring Boot Starter project are as follows:

    Spring Boot Application

    @SpringBootApplication
    @ComponentScan(<root package name under which all subpackages containing relevant classes >)
    public class MySpringBootApplication extends SpringBootServletInitializer {
    

    My Spring-Boot RestController class (autowiring the MyService class instance )

    @RestController
    public class MyController {
    
        @Autowired
        MyService myService;
    

    My Service interface (I have not provided any @Service annotation)

    public interface MyService {
        //all service method definitions
    }
    

    Spring ServiceImpl class with the autowiring repository instance to operate on PostgreSQL DB

    @Service("myService")
    public class MyServiceImpl implements MyService {
    
           @Autowired
           private MyRepository myRepository; <-- **ERROR -- Bean not found** 
    
           //other default services e.g. find, add, delete, update, etc.
    
    }
    

    My Repository class

    @Repository
    public interface MyRepository extends JpaRepository<MyRequestBody, Long> {
        @Query("select h from MyRequestBody h where h.column1 = ?1")
        List<MyRequestBody> findByColumn1(String col1);
    }
    

    My Entity class

    @Entity
    @Table(name = "myTable", schema = "my_db")
    public class MyRequestBody { <-- **ERROR -- Not a managed class type**
    
         @Id
         @Column(name = "id")
         @GeneratedValue(strategy = GenerationType.SEQUENCE)
         private Long id;
         @Column(name = "column1")
         private String column1;
    
    //getter and setter AND toString methods
    

    Error Log (on deploying .WAR on Tomcat)

    Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.
    2017-12-28 15:50:23.282 ERROR 5320 --- [ost-startStop-1] o.s.boot.SpringApplication               : Application startup failed
    
    org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'MyController': Unsatisfied dependency expressed through field 'myService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'myService': Unsatisfied dependency expressed through field 'myRepository'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'myRepository': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Not a managed type: class com.rest.MyRequestBody
    

    After adding @EntityScan(«entities_package_name»)

    ***************************
    APPLICATION FAILED TO START
    ***************************
    
    Description:
    
    Field myRepository in com.rest.MyServiceImpl required a bean of type 'com.rest.MyRepository' that could not be found.
    
    
    Action:
    
    Consider defining a bean of type 'com.rest.MyRepository' in your configuration.
    
    29-Dec-2017 08:22:25.023 SEVERE [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start:
     org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/spring-boot-service]]
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
            at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752)
            at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728)
            at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
            at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:986)
            at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
            at java.util.concurrent.FutureTask.run(FutureTask.java:266)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
            at java.lang.Thread.run(Thread.java:748)
    Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'myController': Unsatisfied dependency expressed through field 'myService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'myService': Unsatisfied dependency expressed through field 'myRepository'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.rest.MyRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
            at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)
            at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
            at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264)
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
            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:197)
            at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)
            at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
            at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
            at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
            at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)
            at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:303)
            at org.springframework.boot.web.support.SpringBootServletInitializer.run(SpringBootServletInitializer.java:154)
            at org.springframework.boot.web.support.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:134)
            at org.springframework.boot.web.support.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:87)
            at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:169)
            at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5196)
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
            ... 10 more
    Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'myService': Unsatisfied dependency expressed through field 'myRepository'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.rest.MyRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
            at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)
            at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
            at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264)
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
            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.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
            ... 32 more
    Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.rest.MyRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
            at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1493)
            at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1104)
            at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066)
            at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
            ... 45 more
    
    29-Dec-2017 08:22:25.026 SEVERE [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Error deploying web application archive [/home/sunilg/apache-tomcat-8.5.24/webapps/spring-boot-service.war]
     java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/spring-boot-service]]
            at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:756)
            at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728)
            at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
            at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:986)
            at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
            at java.util.concurrent.FutureTask.run(FutureTask.java:266)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
            at java.lang.Thread.run(Thread.java:748)
    

    Solution

    Spring is not aware of your entity. You need to denote MySpringBootApplication class with @EntityScan("your.entities.package")

    Answered By — Nikolai Shevchenko

    Понравилась статья? Поделить с друзьями:
  • Ошибка n1116 мерседес w220
  • Ошибка mta core dll
  • Ошибка mvcr100 dll
  • Ошибка mta cl33
  • Ошибка mvcp140 dll