APIM中介序列通过代理传递

时间:2019-11-27 13:53:46

标签: proxy dns wso2 wso2-am

我在隔离的网络环境中与 WSO2 APIM管理器一起工作,我需要访问此网络区域的端点异地:说https://my.endpoint。幸运的是,这里有一个代理(例如http://the.localproxy:8080)。通常,在卷曲中,我可以成功完成此操作

curl -X POST https://my.endpoint/datahub/1.0.1/deliveryform_list --proxy http://the.localproxy:8080 -H "Content-Type: application/json" -d '{"company_code ": "1040", "offset": "0", "limit": "20", "date_from": "1574469733", "date_to": "1574772672", "search": "","refused" : "0","delivered" : "1","impossible_drain" : "0"}' 

axis2.xml

我在repository/conf/axis2/axis.xml中添加了以下内容:

<transportSender name="http" class="org.apache.synapse.transport.passthru.PassThroughHttpSender">
        <parameter name="non-blocking" locked="false">true</parameter>
        <!-- HERE -->
        <parameter name="http.proxyHost" locked="false">the.localproxy</parameter>
        <parameter name="http.proxyPort" locked="false">8080</parameter>
        <parameter name="http.nonProxyHosts" locked="false">localhost|.*\.intra$</parameter>
</transportSender>

<transportSender name="https" class="org.apache.synapse.transport.passthru.PassThroughHttpSSLSender">
        <parameter name="non-blocking" locked="false">true</parameter>
        <parameter name="keystore" locked="false">
            <KeyStore>
                <Location>repository/resources/security/wso2carbon.jks</Location>
                <Type>JKS</Type>
                <Password>wso2carbon</Password>
                <KeyPassword>wso2carbon</KeyPassword>
            </KeyStore>
        </parameter>
        <parameter name="truststore" locked="false">
            <TrustStore>
                <Location>repository/resources/security/client-truststore.jks</Location>
                <Type>JKS</Type>
                <Password>wso2carbon</Password>
            </TrustStore>
        </parameter>
        <!-- =======+++++++HERE++++++======= -->
        <parameter name="http.proxyHost" locked="false">the.localproxy</parameter>
        <parameter name="http.proxyPort" locked="false">8080</parameter>
        <parameter name="http.nonProxyHosts" locked="false">localhost|.*\.intra</parameter>
        <parameter name="dynamicSSLProfilesConfig">
            <filePath>repository/resources/security/sslprofiles.xml</filePath>
            <fileReadInterval>600000</fileReadInterval>
        </parameter>
</transportSender>

问题

但是,连接似乎并没有到达外部世界。

TID: [-1234] [] [2019-12-06 10:41:31,420]  INFO {org.apache.axis2.transport.http.HTTPSender} -  Unable to sendViaPost to url[https://my.endpoint/datahub/1.0.1/deliveryform_list] {org.apache.axis2.transport.http.HTTPSender}                                                 
org.apache.commons.httpclient.ConnectTimeoutException: The host did not accept the connection within timeout of 60000 ms             
        at org.apache.commons.httpclient.protocol.ReflectionSocketFactory.createSocket(ReflectionSocketFactory.java:155)             
        at org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.createSocket(SSLProtocolSocketFactory.java:179)           
        at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)                                                
        at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionMan
ager.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.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:704)                             
        at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:199)                                               
        at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:81)                                                       
        at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:459)   
        at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:286)                    
        at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442)                                                              
        at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:441)                                   
        at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:227)                            
        at org.apache.axis2.client.OperationClient.execute(OperationClient.java:149)                                                 
        at org.apache.synapse.message.senders.blocking.BlockingMsgSender.sendReceive(BlockingMsgSender.java:490)                     
        at org.apache.synapse.message.senders.blocking.BlockingMsgSender.send(BlockingMsgSender.java:382)                            
        at org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPClient.java:88)                                 
        at org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:85)                                                     
        at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:547)                              
        at org.apache.synapse.endpoints.AbstractEndpoint.send(AbstractEndpoint.java:384)                                             
        at org.apache.synapse.endpoints.HTTPEndpoint.send(HTTPEndpoint.java:85)                                                      
        at org.apache.synapse.mediators.builtin.CallMediator.handleBlockingCall(CallMediator.java:164)                               
        at org.apache.synapse.mediators.builtin.CallMediator.mediate(CallMediator.java:119)                                          
        at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:108)                                  
        at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:70)                                   
        at org.apache.synapse.mediators.filters.FilterMediator.mediate(FilterMediator.java:169)                                      
        at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:108)                                  
--                                                                                                                                   
        at org.wso2.carbon.apimgt.gateway.handlers.ext.APIManagerExtensionHandler.mediate(APIManagerExtensionHandler.java:66)        
        at org.wso2.carbon.apimgt.gateway.handlers.ext.APIManagerExtensionHandler.handleRequest(APIManagerExtensionHandler.java:75)  
        at org.apache.synapse.rest.API.process(API.java:325)                                                                         
        at org.apache.synapse.rest.RESTRequestHandler.apiProcessNonDefaultStrategy(RESTRequestHandler.java:149)                      
        at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:95)                                      
        at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:71)                                            
        at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:303)                     
        at org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:92)                              
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)                                                           
        at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:337)            
        at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:383)                   
        at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:151)                                             
        at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)                                 
        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: java.net.SocketTimeoutException: connect timed out                                                                        
        at java.net.PlainSocketImpl.socketConnect(Native Method)                                                                     
        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.SocksSocketImpl.connect(SocksSocketImpl.java:392)                                                                
        at java.net.Socket.connect(Socket.java:589)                                                                                  
        at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:666)                                                            
        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.apache.commons.httpclient.protocol.ReflectionSocketFactory.createSocket(ReflectionSocketFactory.java:140)             
        ... 46 more                                                                                                                  
TID: [-1234] [] [2019-12-06 10:41:31,427]  WARN {org.apache.synapse.endpoints.EndpointContext} -  Endpoint : AnonymousEndpoint with a
ddress https://my.endpoint/datahub/1.0.1/deliveryform_list will be marked SUSPENDED as it failed {org.apache.synapse.endpoints.EndpointCon
text}                                                                                                                                

我是否有权假设i)端点访问由网关管理,并且ii)这两个类(PassThroughHttpSenderPassThroughHttpSSLSender)是其中涉及的一个类这个过程?

1 个答案:

答案 0 :(得分:1)

配置代理的唯一方法是全局。您提到的ESB链接讨论了ESB中的代理服务,该服务不同于代理服务器。

如果您解释了为什么不想在axis2.xml中添加代理配置,那么也许有人可以帮助您。