web-dev-qa-db-ja.com

ホストとのConnectionTimeoutExceptionの取得は、タイムアウト内の接続を受け入れませんでした

次の問題をどのように解決できるか、誰かが私を助けてくれますか?.

nested
exception is org.Apache.commons.httpclient.ConnectTimeoutException: The Host did
not accept the connection within timeout of 10000 ms
        at
org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.convertHttpInvokerAccessException(HttpInvokerClientInterceptor.Java:211)
        at
org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.Java:144)
        at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.Java:171)
        at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.Java:204)
        at $Proxy19.isEmployeeToken(Unknown Source)
        at
com.clickandbuy.webapps.surfer.commons.ContextUtils.isEmployeeToken(ContextUtils.Java:375)
        at
com.clickandbuy.webapps.surfer.commons.ContextUtils.validateLogin(ContextUtils.Java:248)
        at Sun.reflect.GeneratedMethodAccessor1364.invoke(Unknown Source)
        at
Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:25)
        at Java.lang.reflect.Method.invoke(Method.Java:597)
        at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.Java:329)
        at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.Java:274)
        at org.jboss.el.parser.AstMethodSuffix.getValue(AstMethodSuffix.Java:59)
        at org.jboss.el.parser.AstValue.getValue(AstValue.Java:67)
        at org.jboss.el.ValueExpressionImpl.getValue(ValueExpressionImpl.Java:186)
        at
org.springframework.binding.expression.el.BindingValueExpression.getValue(BindingValueExpression.Java:54)
        at
org.springframework.binding.expression.el.ELExpression.getValue(ELExpression.Java:54)
        at
org.springframework.webflow.action.EvaluateAction.doExecute(EvaluateAction.Java:77)
        at
org.springframework.webflow.action.AbstractAction.execute(AbstractAction.Java:188)
        at
org.springframework.webflow.execution.AnnotatedAction.execute(AnnotatedAction.Java:145)
        at
org.springframework.webflow.execution.ActionExecutor.execute(ActionExecutor.Java:51)
        at
org.springframework.webflow.engine.ActionState.doEnter(ActionState.Java:101)
        at org.springframework.webflow.engine.State.enter(State.Java:194)
        at org.springframework.webflow.engine.Flow.start(Flow.Java:535)
        at
org.springframework.webflow.engine.impl.FlowExecutionImpl.start(FlowExecutionImpl.Java:364)
        at
org.springframework.webflow.engine.impl.FlowExecutionImpl.start(FlowExecutionImpl.Java:222)
        at
org.springframework.webflow.executor.FlowExecutorImpl.launchExecution(FlowExecutorImpl.Java:140)
        at
org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handle(FlowHandlerAdapter.Java:193)
        at
org.springframework.webflow.mvc.servlet.FlowController.handleRequest(FlowController.Java:174)
        at
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.Java:48)
        at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.Java:875)
        at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.Java:807)
        at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.Java:571)
        at
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.Java:501)
        at javax.servlet.http.HttpServlet.service(HttpServlet.Java:617)
        at javax.servlet.http.HttpServlet.service(HttpServlet.Java:717)
        at
org.Apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.Java:290)
        at
org.Apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.Java:206)
        at
com.clickandbuy.webapps.surfer.commons.filter.LogUserIPFilter.doFilter(LogUserIPFilter.Java:61)
        at
org.Apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.Java:235)
        at
org.Apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.Java:206)
        at
com.clickandbuy.webapps.surfer.commons.filter.AddHeaderFilter.doFilter(AddHeaderFilter.Java:54)
        at
org.Apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.Java:235)
        at
org.Apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.Java:206)
        at
com.clickandbuy.webapps.commons.filter.SessionSizeFilter.doFilter(SessionSizeFilter.Java:76)
        at
org.Apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.Java:235)
        at
org.Apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.Java:206)
        at
org.Apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.Java:233)
        at
org.Apache.catalina.core.StandardContextValve.invoke(StandardContextValve.Java:191)
        at
org.Apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.Java:433)
        at
org.Apache.catalina.core.StandardHostValve.invoke(StandardHostValve.Java:128)
        at
org.Apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.Java:102)
        at org.Apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.Java:568)
        at
org.Apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.Java:109)
        at
org.Apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.Java:286)
        at
org.Apache.coyote.http11.Http11Processor.process(Http11Processor.Java:845)
        at
org.Apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.Java:583)
        at org.Apache.Tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.Java:447)
        at Java.lang.Thread.run(Thread.Java:619)
Caused by: org.Apache.commons.httpclient.ConnectTimeoutException: The Host did
not accept the connection within timeout of 10000 ms
        at
org.Apache.commons.httpclient.protocol.ReflectionSocketFactory.createSocket(ReflectionSocketFactory.Java:155)
        at
org.Apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.Java:125)
        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
org.springframework.remoting.httpinvoker.CommonsHttpInvokerRequestExecutor.executePostMethod(CommonsHttpInvokerRequestExecutor.Java:195)
        at
org.springframework.remoting.httpinvoker.CommonsHttpInvokerRequestExecutor.doExecuteRequest(CommonsHttpInvokerRequestExecutor.Java:129)
        at
org.springframework.remoting.httpinvoker.AbstractHttpInvokerRequestExecutor.executeRequest(AbstractHttpInvokerRequestExecutor.Java:136)
        at
org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.executeRequest(HttpInvokerClientInterceptor.Java:191)
        at
org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.executeRequest(HttpInvokerClientInterceptor.Java:173)
        at
org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.Java:141)
        ... 57 more
Caused by: Java.net.SocketTimeoutException: connect timed out
        at Java.net.PlainSocketImpl.socketConnect(Native Method)
        at Java.net.PlainSocketImpl.doConnect(PlainSocketImpl.Java:333)
        at Java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.Java:195)
        at Java.net.PlainSocketImpl.connect(PlainSocketImpl.Java:182)
        at Java.net.SocksSocketImpl.connect(SocksSocketImpl.Java:366)
        at Java.net.Socket.connect(Socket.Java:519)
        at Sun.reflect.GeneratedMethodAccessor284.invoke(Unknown Source)
        at
Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:25)
        at Java.lang.reflect.Method.invoke(Method.Java:597)
        at
org.Apache.commons.httpclient.protocol.ReflectionSocketFactory.createSocket(ReflectionSocketFactory.Java:140)
        ... 70 more

私の構成は次のとおりです。

<bean id="loginManagerHttpInvoker" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">
        <property name="serviceUrl" value="service url" />
        <property name="serviceInterface" value="service interface" />
        <property name="httpInvokerRequestExecutor">
            <bean class="org.springframework.remoting.httpinvoker.CommonsHttpInvokerRequestExecutor">
                <property name="httpClient">
                    <bean class="org.Apache.commons.httpclient.HttpClient">
                        <property name="httpConnectionManager">
                            <bean class="org.Apache.commons.httpclient.MultiThreadedHttpConnectionManager">
                                <property name="params">
                                    <bean class="org.Apache.commons.httpclient.params.HttpConnectionManagerParams">
                                        <property name="connectionTimeout"><value>10000</value></property>
                                        <property name="defaultMaxConnectionsPerHost"><value>150</value></property>
                                        <property name="maxTotalConnections"><value>150</value></property>
                                        <property name="staleCheckingEnabled" value="true" />
                                        <property name="linger" value="-1" />
                                        <property name="soTimeout"><value>60000</value></property>
                                    </bean>
                                </property>
                            </bean>
                        </property>
                    </bean>
                </property>
            </bean>
        </property>
    </bean>

サーバーの再起動後、すべてが正常に機能しています。そして、私はサーバーに接続することができました。何が問題なのか、それは一度だけ起こった、私はこれまでこれを見たことがない...同じ構成は何も変わっていない..。

前もって感謝します

サンジャナー

12
Sanjana

サーバー側が「存在しない」場合は常に、プログラムはConnectionTimeoutExceptionを取得します。ほとんどの場合、離れた場所にある場合でも(待ち時間が長い)プロセス間を接続するには、10秒(10000ミリ秒)のタイムアウトで十分です。

クライアントが接続を取得できない理由はたくさんあります。

  • サーバープロセスが実行されていません。
  • サーバープロセスは接続を受け入れていません。
  • クライアントプロセスが接続に使用したアドレスまたはポートが正しくありません。
  • サーバーへのルートが無効です

通常、これらはサーバーのオペレーティングシステムまたは一部のルーターが障害で応答できるため、迅速な障害応答をもたらします。あなたの状況に直接当てはまるかもしれないいくつかがここにあります:

  • サーバーが物理的にオフ
  • サーバーまたはサーバープロセスがハングしました
  • サーバーがネットワークから物理的に切断されている
  • 宛先アドレスが無効であり、そのアドレスがネットワーク上に存在しません
  • クライアントからの発信ルートをブロックするファイアウォールルール
  • サーバーへの着信ルートをブロックするファイアウォールルール

この種の問題は通常、戻りメッセージがないためにタイムアウト例外が発生します(クライアントオペレーティングシステムはあきらめる必要があり、それがタイムアウトの理由です)。

このリストは完全ではない場合がありますが、問題のトラブルシューティングに役立つ場合があります。構成とネットワークに関する追加情報、および解決に具体的に支援したいことを提供できる場合は、ここの誰かがより具体的な支援を提供できるはずです。

18
Kevin Brock