当前位置: 首页 > 知识库问答 >
问题:

无法通过其httpendpointURL访问WSO2 ESB代理服务

狄睿
2023-03-14

我们有一个WSO2 ESB代理服务,可以通过它的httpsendpoint访问。我想配置这个服务,使它也可以通过HTTP访问。我检查了carbon management控制台中的服务配置,并确认https和httpendpoint都已启用:https://10.20.0.20:8245/services/ http://10.20.0.20:8282/services/

此外,ESB_HOME}/repository/conf/axis2/中的axis2.xml文件似乎配置得很好。

<!-- ================================================= -->
<!--             Transport Ins (Listeners)             -->
<!-- ================================================= -->

<!-- the non blocking http transport based on HttpCore + NIO extensions -->
<transportReceiver name="http" class="org.apache.synapse.transport.nhttp.HttpCoreNIOListener">
    <parameter name="port" locked="false">8280</parameter>
    <parameter name="non-blocking" locked="false">true</parameter>
    <!--parameter name="bind-address" locked="false">hostname or IP address</parameter-->
    <!--parameter name="WSDLEPRPrefix" locked="false">https://apachehost:port/somepath</parameter-->
    <parameter name="httpGetProcessor" locked="false">org.wso2.carbon.transport.nhttp.api.NHttpGetProcessor</parameter>
    <!--<parameter name="priorityConfigFile" locked="false">location of priority configuration file</parameter>-->
    <parameter name="disableRestServiceDispatching" locked="false">true</parameter>
</transportReceiver>

<!-- the non blocking https transport based on HttpCore + SSL-NIO extensions -->
<transportReceiver name="https" class="org.apache.synapse.transport.nhttp.HttpCoreNIOSSLListener">
    <parameter name="port" locked="false">8243</parameter>
    <parameter name="non-blocking" locked="false">true</parameter>
    <!--parameter name="bind-address" locked="false">hostname or IP address</parameter-->
    <!--parameter name="WSDLEPRPrefix" locked="false">https://apachehost:port/somepath</parameter-->
    <!--<parameter name="priorityConfigFile" locked="false">location of priority configuration file</parameter>-->
    <parameter name="httpGetProcessor" locked="false">org.wso2.carbon.transport.nhttp.api.NHttpGetProcessor</parameter>
    <parameter name="disableRestServiceDispatching" locked="false">true</parameter>
    <parameter name="keystore" locked="false">
        <KeyStore>
            <Location>repository/resources/security/iaascol.jks</Location>
            <Type>JKS</Type>
            <Password>***</Password>
            <KeyPassword>rotcelloc</KeyPassword>
        </KeyStore>
    </parameter>
    <parameter name="truststore" locked="false">
        <TrustStore>
            <Location>repository/resources/security/client-truststore.jks</Location>
            <Type>JKS</Type>
            <Password>***</Password>
        </TrustStore>
    </parameter>
    <!--<parameter name="SSLVerifyClient">require</parameter>
        supports optional|require or defaults to none -->
</transportReceiver>
<Offset>2</Offset>

编辑:下面是代理服务配置和netstat结果。

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
  name="disbursement" statistics="disable"
  trace="enable" transports="https,http">
 <target>
    <inSequence>
        <property action="set" name="EXECUTION_CONTEXT"
            scope="default" type="STRING" value="disbursement"/>
        <property action="set"
            expression="fn:concat(//*[local-name()='Header']/*[local-name()='TrackingID'], '.xml')"
            name="DumpFileName" scope="default" type="STRING"/>
        <log category="INFO" level="full" separator=",">
            <property name="EVENT_TYPE" value="PROCESSING_STARTED"/>
            <property expression="get-property('DumpFileName')" name="FILENAME"/>
        </log>
        <property action="set" name="DumpFilePath" scope="default"
            type="STRING" value="/home/user1/data/disbursement/incoming"/>
        <class name="se.seman.wso2.mediator.WriteFile"/>
        <property action="set" name="TopicName" scope="default"
            type="STRING" value="VirtualTopic.seman.iaas.user1.topic.disbursement.out"/>
        <property action="set" name="ResultCode" scope="default"
            type="STRING" value="0"/>
        <!--
        TODO correct problem with xpath
        validate source="/default/xpath">
            <on-fail>
                <property action="set" name="ResultCode"
                    scope="default" type="STRING" value="100"/>
                <property action="set"
                    expression="get-property('ERROR_MESSAGE')"
                    name="ResultMessage" scope="default"
                    type="STRING"
                    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:Namespaces.user1.se:Cmf:InfoModel:FinancialManagement:Payment:Disbursment:0002"/>
                <log category="INFO" level="full" separator=",">
                    <property name="MESSAGE" value="Schema validation failed"/>
                    <property
                        expression="get-property('ERROR_CODE')"
                        name="ERROR_CODE"
                        xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:Namespaces.user1.se:Cmf:InfoModel:FinancialManagement:Payment:Disbursment:0002"/>
                    <property
                        expression="get-property('ERROR_MESSAGE')"
                        name="ERROR_MESSAGE"
                        xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:Namespaces.user1.se:Cmf:InfoModel:FinancialManagement:Payment:Disbursment:0002"/>
                </log>
                <property action="set" name="RESPONSE"
                    scope="default" type="STRING" value="true"/>
            </on-fail>
            <schema key="conf:user1/ESBConfig/Common/NetPosti/resources/Disbursement_0002.xsd"/>
        </validate -->
        <log category="INFO" level="headers" separator=",">
            <property name="MESSAGE" value="Before Topic"/>
            <property expression="get-property('ERROR')" name="ERROR"/>
        </log>
        <filter xpath="get-property('ResultCode') = '0'">
            <then>
                <property action="set" name="ResultMessage"
                    scope="default" type="STRING" value="OK"/>
                <class name="se.seman.wso2.mediator.WriteActiveMQTopic"/>
            </then>
            <else/>
        </filter>
        <header action="remove" name="To"/>
        <property action="remove" name="NO_ENTITY_BODY" scope="axis2"/>
        <property action="set" name="RESPONSE" scope="default"
            type="STRING" value="true"/>
        <payloadFactory>
            <format>
                <disr:DisbursementResponse xmlns:disr="urn:Namespaces.user1.se:Service:FinancialManagement:Payment:Disbursement:Response:0001">
                    <disr:ResponseCode>$1</disr:ResponseCode>
                    <disr:Message>$2</disr:Message>
                </disr:DisbursementResponse>
            </format>
            <args>
                <arg expression="get-property('ResultCode')"/>
                <arg expression="get-property('ResultMessage')"/>
            </args>
        </payloadFactory>
        <log category="INFO" level="full" separator=","/>
        <send/>
    </inSequence>
    <outSequence>
        <log category="INFO" level="full" separator=",">
            <property name="MESSAGE" value="On the way back.."/>
        </log>
        <send/>
    </outSequence>
    <faultSequence>
        <log category="INFO" level="full" separator=",">
            <property name="MESSAGE" value="Error in Call!"/>
        </log>
        <property action="set" name="RESPONSE" scope="default"
            type="STRING" value="true"/>
        <enrich>
            <source clone="true" type="inline">
                <disr:DisbursementResponse xmlns:disr="urn:Namespaces.user1.se:Service:FinancialManagement:Payment:Disbursement:0001">
                    <disr:ResponseCode>900</disr:ResponseCode>
                    <disr:Message>General error</disr:Message>
                </disr:DisbursementResponse>
            </source>
            <target action="replace" type="body"/>
        </enrich>
    </faultSequence>
</target>
<publishWSDL key="conf:user1/ESBConfig/Common/NetPosti/resources/DisbursementService0002.wsdl">
    <resource
        key="conf:user1/ESBConfig/Common/NetPosti/resources/Disbursement_0002.xsd" location="Disbursement_0002.xsd"/>
</publishWSDL>
[user1@ip-10-20-0-20 ~]$ netstat -pnlt
Proto Recv-Q Send-Q Local Address               Foreign Address             
State       PID/Program name
tcp        0      0 :::8245                     :::*                        
LISTEN      2454/java
tcp        0      0 :::8282                     :::*                        
LISTEN      2454/java

共有1个答案

时衡虑
2023-03-14

原来这只是防火墙的问题。端口8282在wso2防火墙(iptables)中被阻塞。谢谢你的回答!

 类似资料:
  • 27.6 通过代理访问MBeans Spring JMX 允许你创建代理,它将重新路由到本地或者远程MBeanServer中注册的MBean。这些代理提供了标准的Java接口来和MBean进行交互。下面的代码展示了如何在本地允许的MBeanServer中配置代理: <bean class="org.springframework.jmx.access.MBeanProxyFactoryBean">

  • 21.6. 通过代理访问MBeans Spring JMX允许你创建代理,这个代理改变到注册到本地或远程 MBeanServer 的MBean的调用。 这些代理提供里一个标准的Java接口,通过它,你可以和MBean相合。 下面的代码展示了如何为一个运行在本地 MBeanServer 的配置一个代理: bean id="proxy"> <property name="objectName"

  • 我有一个包含3个容器的项目:反向代理容器(jwilder-nginx-proxy image),前端容器(nginx容器服务于Vue js开发和捆绑的应用程序)和后端容器(node6容器服务于NodeJs ExpressJs应用程序)。后端和前端都在反向代理的后面。下面是它在我的本地主机中应该如何工作: 访问http://localhost:80/并为gui服务 gui应该通过http://loc

  • 我在后端使用微服务架构,其中我使用TypeScript创建服务,其他使用Java创建服务。我还有一个Spring网关和一个Eureka服务器(都使用Spring)。 然后,Gateway工作正常,Eureka工作正常,用Java编写的其他微服务也工作正常。问题是当我试图通过网关访问TypeScript微服务时。 我有一个简单的Eureka服务器,在Spring使用注释EnableEurekaSer

  • 问题内容: 我正在尝试使用当前位置在android中提交用户注册表格。我是android和java开发的新手。当我尝试在我的名称值对代码中访问onLocationChanged方法的myLat和myLan时,无法同时找到这两个变量。如何访问我的名称/值对代码中的两个变量。 问题答案: 您可能应该研究范围和成员变量。问题是,您不能在一个方法中声明一件事,然后尝试从另一方法访问它。 因此,我们将该事物

  • 什么起作用了? 使用Helm(启用RBAC)部署入口控制器 集群IP服务部署 什么不起作用? null K8S入口 注释中最后应用的配置(入口描述输出)显示入口资源清单。但是,我贴在下面作为参考 附加信息 null 任何关于我可能做错了什么的建议或见解将非常感谢。